DataView.xaml 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349
  1. <UserControl
  2. x:Class="MECF.Framework.UI.Client.CenterViews.DataLogs.DataHistory.DataView"
  3. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  7. xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
  8. xmlns:converter="clr-namespace:MECF.Framework.UI.Client.Ctrlib.Converter"
  9. xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
  10. xmlns:micro="clr-namespace:Caliburn.Micro"
  11. xmlns:system="clr-namespace:System;assembly=mscorlib"
  12. xmlns:userControls="clr-namespace:MECF.Framework.UI.Client.ClientBase.UserControls"
  13. xmlns:converters="clr-namespace:Aitex.Core.UI.Converters;assembly=MECF.Framework.UI.Core"
  14. d:DesignHeight="450"
  15. d:DesignWidth="1000"
  16. mc:Ignorable="d">
  17. <UserControl.Resources>
  18. <converter:BoolReverseConverter x:Key="boolReverseConverter" />
  19. <converter:BoolVisibilityConverter x:Key="boolVisibilityConverter" />
  20. <converters:ControlWidthOrHeightConverter x:Key="controlWidthOrHeightConverter"/>
  21. <system:Boolean x:Key="True">True</system:Boolean>
  22. <system:Boolean x:Key="False">False</system:Boolean>
  23. </UserControl.Resources>
  24. <Grid IsEnabled="{Binding IsPermission}">
  25. <Grid.ColumnDefinitions>
  26. <ColumnDefinition Width="260" />
  27. <ColumnDefinition Width="Auto" />
  28. <ColumnDefinition />
  29. </Grid.ColumnDefinitions>
  30. <Grid.RowDefinitions>
  31. <RowDefinition />
  32. <RowDefinition Height="200" />
  33. </Grid.RowDefinitions>
  34. <Grid Grid.RowSpan="2" Grid.Column="0">
  35. <Grid.RowDefinitions>
  36. <RowDefinition Height="100" />
  37. <RowDefinition Height="0" />
  38. <RowDefinition Height="1" />
  39. <RowDefinition Height="*" />
  40. </Grid.RowDefinitions>
  41. <Border
  42. Grid.Row="0"
  43. Padding="5,1"
  44. Background="{StaticResource Table_BG_Content}"
  45. BorderBrush="{StaticResource Table_BD}"
  46. BorderThickness="1,0,1,1"
  47. IsEnabled="{Binding IsBusy, Converter={StaticResource boolReverseConverter}}">
  48. <Grid>
  49. <Grid.ColumnDefinitions>
  50. <ColumnDefinition Width="72"/>
  51. <ColumnDefinition Width="1*"/>
  52. <ColumnDefinition Width="1*"/>
  53. </Grid.ColumnDefinitions>
  54. <Grid.RowDefinitions>
  55. <RowDefinition Height="5*"/>
  56. <RowDefinition Height="5*"/>
  57. <RowDefinition Height="6*"/>
  58. </Grid.RowDefinitions>
  59. <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontFamily="Arial" FontSize="14" Foreground="{StaticResource FG_Black}" Text="Start Time" />
  60. <Button Grid.Column="1" Grid.ColumnSpan="2" x:Name="wfTimeFrom" Margin="1" ContentStringFormat="yyyy-MM-dd HH:mm:ss">
  61. <i:Interaction.Triggers>
  62. <i:EventTrigger EventName="Click">
  63. <micro:ActionMessage MethodName="SelectDate">
  64. <micro:Parameter Value="Start"/>
  65. </micro:ActionMessage>
  66. </i:EventTrigger>
  67. </i:Interaction.Triggers>
  68. </Button>
  69. <TextBlock Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Center" FontFamily="Arial" FontSize="14" Foreground="{StaticResource FG_Black}" Text=" End Time" />
  70. <Button Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="2" x:Name="wfTimeTo" Margin="1" ContentStringFormat="yyyy-MM-dd HH:mm:ss">
  71. <i:Interaction.Triggers>
  72. <i:EventTrigger EventName="Click">
  73. <micro:ActionMessage MethodName="SelectDate">
  74. <micro:Parameter Value="End"/>
  75. </micro:ActionMessage>
  76. </i:EventTrigger>
  77. </i:Interaction.Triggers>
  78. </Button>
  79. <Button Margin="0,5,5,0" Content="Query" Grid.Column="1" Grid.Row="2">
  80. <i:Interaction.Triggers>
  81. <i:EventTrigger EventName="Click">
  82. <micro:ActionMessage MethodName="QueryData">
  83. <micro:ActionMessage.Parameters>
  84. <micro:Parameter Value="{StaticResource False}" />
  85. </micro:ActionMessage.Parameters>
  86. </micro:ActionMessage>
  87. </i:EventTrigger>
  88. </i:Interaction.Triggers>
  89. </Button>
  90. <Button Margin="0,5,5,0" Content="Append" ToolTip="Append selected items to current chart" Grid.Column="2" Grid.Row="2">
  91. <i:Interaction.Triggers>
  92. <i:EventTrigger EventName="Click">
  93. <micro:ActionMessage MethodName="QueryData">
  94. <micro:ActionMessage.Parameters>
  95. <micro:Parameter Value="{StaticResource True}" />
  96. </micro:ActionMessage.Parameters>
  97. </micro:ActionMessage>
  98. </i:EventTrigger>
  99. </i:Interaction.Triggers>
  100. </Button>
  101. </Grid>
  102. </Border>
  103. <Border
  104. Grid.Row="3"
  105. Padding="5"
  106. Background="{StaticResource Tab_BG}"
  107. BorderBrush="{StaticResource Tab_BD}"
  108. BorderThickness="1"
  109. IsEnabled="{Binding IsBusy, Converter={StaticResource boolReverseConverter}}"
  110. SnapsToDevicePixels="True">
  111. <userControls:ParameterNodeTreeViewControl
  112. x:Name="tvParameterNodes"
  113. PresetGroupsFolderName="DataHistory"
  114. TreeRoot="{Binding ParameterNodes}" />
  115. </Border>
  116. </Grid>
  117. <GridSplitter
  118. Grid.Row="0"
  119. Grid.RowSpan="2"
  120. Grid.Column="1"
  121. Width="5"
  122. Margin="0,0,2,0"
  123. HorizontalAlignment="Left"
  124. VerticalAlignment="Stretch"
  125. Background="LightBlue"
  126. IsEnabled="{Binding IsBusy, Converter={StaticResource boolReverseConverter}}" />
  127. <!-- data chart -->
  128. <Grid
  129. Grid.Row="0"
  130. Grid.Column="2"
  131. Margin="5,0,0,0">
  132. <Grid.RowDefinitions>
  133. <RowDefinition Height="*"/>
  134. <RowDefinition Height="40"/>
  135. </Grid.RowDefinitions>
  136. <TabControl x:Name="tabControl">
  137. <TabItem Header="Chart">
  138. <Grid>
  139. <userControls:DataViewChart
  140. x:Name="chart"
  141. AutoRange="{Binding ChartAutoRange}"
  142. IsEnabled="{Binding IsBusy, Converter={StaticResource boolReverseConverter}}"
  143. RenderableSeries="{Binding SelectedData}"
  144. VisibleRangeTime="{Binding VisibleRangeTime}"
  145. VisibleRangeValue="{Binding VisibleRangeValue}"
  146. Direction="{Binding Source={x:Reference Name=CbDirection},Path=Text}"/>
  147. <userControls:FourArrowButton ArrowColor="{StaticResource Button_BG}" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="0,0,50,0"/>
  148. </Grid>
  149. </TabItem>
  150. <TabItem Header="Table Format" Padding="5" x:Name="tabTable">
  151. <!--<TreeView x:Name="treeView" FontSize="16" ItemsSource="{Binding HistoryData}">
  152. <TreeView.ItemTemplate>
  153. <HierarchicalDataTemplate ItemsSource="{Binding TValue}">
  154. <TextBlock Text="{Binding TKey}"/>
  155. <HierarchicalDataTemplate.ItemTemplate>
  156. <HierarchicalDataTemplate ItemsSource="{Binding Value.Value}">-->
  157. <DataGrid Grid.Row="1" Margin="0,5,10,0"
  158. Width="{Binding ElementName=tabControl,Path=ActualWidth,Converter={StaticResource controlWidthOrHeightConverter}}"
  159. AutoGenerateColumns="False" Name="dataGrid1"
  160. AlternationCount="2"
  161. CanUserAddRows="False"
  162. CanUserSortColumns="False"
  163. FontSize="14" HorizontalAlignment="Left"
  164. ScrollViewer.CanContentScroll="True"
  165. VirtualizingPanel.IsContainerVirtualizable="True"
  166. VirtualizingPanel.IsVirtualizing="True"
  167. VirtualizingPanel.VirtualizationMode="Recycling"
  168. EnableColumnVirtualization="True"
  169. EnableRowVirtualization="True" >
  170. <DataGrid.ColumnHeaderStyle>
  171. <Style TargetType="DataGridColumnHeader">
  172. <Setter Property="Block.Foreground" Value="Black"/>
  173. <Setter Property="FontSize" Value="14"/>
  174. <Setter Property="Height" Value="80"/>
  175. <Setter Property="Width" Value="135"/>
  176. <Setter Property="HorizontalContentAlignment" Value="Center"/>
  177. <Setter Property="BorderThickness" Value="1,1,0,0"/>
  178. <Setter Property="BorderBrush" Value="{DynamicResource DataGrid_Header_BD_Highlight}"/>
  179. <Setter Property="Template">
  180. <Setter.Value>
  181. <ControlTemplate TargetType="{x:Type DataGridColumnHeader}">
  182. <Border BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Cursor="Hand">
  183. <Border BorderBrush="{DynamicResource DataGrid_Header_BD}" BorderThickness="0,0,1,0">
  184. <Grid Width="100" Height="80" Margin="0,5">
  185. <TextBlock Text="{Binding Path=Content, RelativeSource={RelativeSource Mode=TemplatedParent}}" FontFamily="Arial" FontSize="16" TextWrapping="Wrap" HorizontalAlignment="Center" VerticalAlignment="Center"/>
  186. </Grid>
  187. </Border>
  188. </Border>
  189. </ControlTemplate>
  190. </Setter.Value>
  191. </Setter>
  192. </Style>
  193. </DataGrid.ColumnHeaderStyle>
  194. <!--<DataGrid.Columns>
  195. <DataGridTemplateColumn Width="40" CanUserSort="True" SortMemberPath="Icon">
  196. <DataGridTemplateColumn.CellTemplate>
  197. <DataTemplate>
  198. <Image Width="20" Height="20" HorizontalAlignment="Center" Stretch="Fill" VerticalAlignment="Center" Source="{Binding Icon}" />
  199. </DataTemplate>
  200. </DataGridTemplateColumn.CellTemplate>
  201. </DataGridTemplateColumn>
  202. <DataGridTextColumn Width="200" Binding="{Binding dbName,Mode=OneWay}" Foreground="Black" CanUserSort="True" CanUserReorder="True" IsReadOnly="True" CanUserResize="False">
  203. <DataGridTextColumn.HeaderTemplate >
  204. <DataTemplate>
  205. <TextBlock Text="Name" Foreground="{Binding LogType,Converter={StaticResource levelToColorConverter}}" VerticalAlignment="Center" TextAlignment="Center"/>
  206. </DataTemplate>
  207. </DataGridTextColumn.HeaderTemplate>
  208. </DataGridTextColumn>
  209. <DataGridTextColumn Width="200" Binding="{Binding dateTime,Mode=OneWay}" Foreground="Black" CanUserSort="True" CanUserReorder="True" IsReadOnly="True" CanUserResize="False">
  210. <DataGridTextColumn.HeaderTemplate >
  211. <DataTemplate>
  212. <TextBlock Text="Time" Foreground="{Binding LogType,Converter={StaticResource levelToColorConverter}}" VerticalAlignment="Center" TextAlignment="Center"/>
  213. </DataTemplate>
  214. </DataGridTextColumn.HeaderTemplate>
  215. </DataGridTextColumn>
  216. <DataGridTemplateColumn Header="Value" Width="*" CanUserSort="True" CanUserReorder="False" IsReadOnly="True" CanUserResize="False">
  217. <DataGridTemplateColumn.HeaderTemplate >
  218. <DataTemplate>
  219. <TextBlock Text="Value" />
  220. </DataTemplate>
  221. </DataGridTemplateColumn.HeaderTemplate>
  222. <DataGridTemplateColumn.CellTemplate>
  223. <DataTemplate>
  224. <TextBlock Text="{Binding value}" Foreground="{Binding LogType,Converter={StaticResource levelToColorConverter}}" VerticalAlignment="Center" TextWrapping="Wrap" />
  225. </DataTemplate>
  226. </DataGridTemplateColumn.CellTemplate>
  227. </DataGridTemplateColumn>
  228. </DataGrid.Columns>-->
  229. </DataGrid>
  230. <!--</HierarchicalDataTemplate>
  231. </HierarchicalDataTemplate.ItemTemplate>
  232. </HierarchicalDataTemplate>
  233. </TreeView.ItemTemplate>
  234. -->
  235. <!--将节点默认展开-->
  236. <!--
  237. <TreeView.ItemContainerStyle>
  238. <Style TargetType="{x:Type TreeViewItem}">
  239. <Setter Property="IsExpanded" Value="True"></Setter>
  240. </Style>
  241. </TreeView.ItemContainerStyle>
  242. </TreeView>-->
  243. </TabItem>
  244. </TabControl>
  245. <userControls:BusyIndicator
  246. Width="Auto"
  247. Height="Auto"
  248. Padding="20,10"
  249. HorizontalAlignment="Center"
  250. VerticalAlignment="Center"
  251. Background="{StaticResource Tab_BG}"
  252. BorderBrush="Gray"
  253. BorderThickness="3"
  254. Message="{Binding BusyIndicatorContent}"
  255. Visibility="{Binding IsBusy, Converter={StaticResource boolVisibilityConverter}}">
  256. <i:Interaction.Triggers>
  257. <i:EventTrigger EventName="Canceled">
  258. <micro:ActionMessage MethodName="CancelQuery" />
  259. </i:EventTrigger>
  260. </i:Interaction.Triggers>
  261. </userControls:BusyIndicator>
  262. <StackPanel Grid.Row="1" Orientation="Horizontal">
  263. <Button Content="Zoom In" Width="95" Margin="1,2,0,2">
  264. <i:Interaction.Triggers>
  265. <i:EventTrigger EventName="Click">
  266. <micro:ActionMessage MethodName="ZoomInClick">
  267. <micro:Parameter Value="{Binding Source={x:Reference Name=CbDirection},Path=SelectedIndex}"/>
  268. </micro:ActionMessage>
  269. </i:EventTrigger>
  270. </i:Interaction.Triggers>
  271. </Button>
  272. <Button Content="Zoom Out" Width="95" Margin="1,2,0,2">
  273. <i:Interaction.Triggers>
  274. <i:EventTrigger EventName="Click">
  275. <micro:ActionMessage MethodName="ZoomOutClick">
  276. <micro:Parameter Value="{Binding Source={x:Reference Name=CbDirection},Path=SelectedIndex}"/>
  277. </micro:ActionMessage>
  278. </i:EventTrigger>
  279. </i:Interaction.Triggers>
  280. </Button>
  281. <ComboBox x:Name="CbDirection" SelectedIndex="0" IsEditable="False" Margin="2,2,0,2">
  282. <ComboBoxItem Content="XYDirection"/>
  283. <ComboBoxItem Content="XDirection"/>
  284. <ComboBoxItem Content="YDirection"/>
  285. </ComboBox>
  286. </StackPanel>
  287. </Grid>
  288. <GridSplitter
  289. Grid.Row="1"
  290. Grid.Column="2"
  291. Height="5"
  292. Margin="0,0,2,0"
  293. HorizontalAlignment="Stretch"
  294. VerticalAlignment="Top"
  295. Background="LightBlue"
  296. IsEnabled="{Binding IsBusy, Converter={StaticResource boolReverseConverter}}" />
  297. <userControls:DataViewDataGrid
  298. x:Name="dataGrid"
  299. Grid.Row="1"
  300. Grid.Column="2"
  301. Margin="0,5,0,0"
  302. IsEnabled="{Binding IsBusy, Converter={StaticResource boolReverseConverter}}"
  303. IsShowStatisticColumn="True"
  304. ItemsSource="{Binding Path=SelectedData}">
  305. <i:Interaction.Triggers>
  306. <i:EventTrigger EventName="Deleted">
  307. <micro:ActionMessage MethodName="Deleted">
  308. <micro:Parameter Value="$source" />
  309. <micro:Parameter Value="$eventargs" />
  310. </micro:ActionMessage>
  311. </i:EventTrigger>
  312. <i:EventTrigger EventName="Exporting">
  313. <micro:ActionMessage MethodName="Exporting">
  314. <micro:Parameter Value="$source" />
  315. <micro:Parameter Value="$eventargs" />
  316. </micro:ActionMessage>
  317. </i:EventTrigger>
  318. <i:EventTrigger EventName="Exported">
  319. <micro:ActionMessage MethodName="Exported">
  320. <micro:Parameter Value="$source" />
  321. <micro:Parameter Value="$eventargs" />
  322. </micro:ActionMessage>
  323. </i:EventTrigger>
  324. <i:EventTrigger EventName="ProgressMessageUpdating">
  325. <micro:ActionMessage MethodName="ProgressUpdating">
  326. <micro:Parameter Value="$source" />
  327. <micro:Parameter Value="$eventargs" />
  328. </micro:ActionMessage>
  329. </i:EventTrigger>
  330. </i:Interaction.Triggers>
  331. </userControls:DataViewDataGrid>
  332. </Grid>
  333. </UserControl>