OilControlView.axaml 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. <UserControl
  2. x:Class="ShakerApp.Views.OilControlView"
  3. xmlns="https://github.com/avaloniaui"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:local="using:ShakerApp"
  7. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  8. xmlns:suki="https://github.com/kikipoulet/SukiUI"
  9. xmlns:view="using:ShakerApp.Views"
  10. xmlns:vm="using:ShakerApp.ViewModels"
  11. d:DesignHeight="450"
  12. d:DesignWidth="800"
  13. x:DataType="vm:OilSourceStatusViewModel"
  14. DataContext="{Binding Source={x:Static vm:OilSourceStatusViewModel.Instance}}"
  15. mc:Ignorable="d">
  16. <UserControl.IsEnabled>
  17. <MultiBinding Converter="{StaticResource MutliBoolConverter}">
  18. <Binding Path="IsConnect" />
  19. <Binding Path="IsRemote" />
  20. <Binding Path="IsEnabled" />
  21. </MultiBinding>
  22. </UserControl.IsEnabled>
  23. <Grid>
  24. <Grid.RowDefinitions>
  25. <RowDefinition />
  26. <RowDefinition Height="auto" />
  27. </Grid.RowDefinitions>
  28. <Grid>
  29. <Grid.ColumnDefinitions>
  30. <ColumnDefinition Width="*" />
  31. <ColumnDefinition Width="2*" />
  32. </Grid.ColumnDefinitions>
  33. <ItemsControl
  34. VerticalAlignment="Center"
  35. IsEnabled="False"
  36. ItemsSource="{Binding OilSourceAnalogs}">
  37. <ItemsControl.ItemTemplate>
  38. <DataTemplate>
  39. <view:OilAnalogView IsVisible="{Binding IsVisible}" />
  40. </DataTemplate>
  41. </ItemsControl.ItemTemplate>
  42. </ItemsControl>
  43. <StackPanel Grid.Column="1">
  44. <ItemsControl ItemsSource="{Binding Circuit}">
  45. <ItemsControl.ItemTemplate>
  46. <DataTemplate>
  47. <suki:GroupBox IsVisible="{Binding IsVisible}">
  48. <suki:GroupBox.Header>
  49. <StackPanel Orientation="Horizontal">
  50. <TextBlock
  51. VerticalAlignment="Center"
  52. FontSize="{StaticResource TabItemFontSize}"
  53. FontWeight="Bold"
  54. Text="{Binding Index, StringFormat='{}{0}#'}" />
  55. <TextBlock
  56. VerticalAlignment="Center"
  57. FontSize="{StaticResource TabItemFontSize}"
  58. FontWeight="Bold"
  59. Text="{local:ResourceBinding Value.Name}" />
  60. </StackPanel>
  61. </suki:GroupBox.Header>
  62. <view:PumpControlView DataContext="{Binding Value}" IsVisible="{Binding IsVisible}" />
  63. </suki:GroupBox>
  64. </DataTemplate>
  65. </ItemsControl.ItemTemplate>
  66. </ItemsControl>
  67. <suki:GroupBox DataContext="{Binding Assistant}" IsVisible="{Binding IsVisible}">
  68. <suki:GroupBox.Header>
  69. <TextBlock
  70. VerticalAlignment="Center"
  71. FontSize="{StaticResource TabItemFontSize}"
  72. FontWeight="Bold"
  73. Text="{local:ResourceBinding Name}" />
  74. </suki:GroupBox.Header>
  75. <view:PumpControlView IsVisible="{Binding IsVisible}" />
  76. </suki:GroupBox>
  77. <suki:GroupBox DataContext="{Binding Forerunner}" IsVisible="{Binding IsVisible}">
  78. <suki:GroupBox.Header>
  79. <TextBlock
  80. VerticalAlignment="Center"
  81. FontSize="{StaticResource TabItemFontSize}"
  82. FontWeight="Bold"
  83. Text="{local:ResourceBinding Name}" />
  84. </suki:GroupBox.Header>
  85. <view:PumpControlView IsVisible="{Binding IsVisible}" />
  86. </suki:GroupBox>
  87. <suki:GroupBox DataContext="{Binding Circulate}" IsVisible="{Binding IsVisible}">
  88. <suki:GroupBox.Header>
  89. <TextBlock
  90. VerticalAlignment="Center"
  91. FontSize="{StaticResource TabItemFontSize}"
  92. FontWeight="Bold"
  93. Text="{local:ResourceBinding Name}" />
  94. </suki:GroupBox.Header>
  95. <view:PumpControlView IsVisible="{Binding IsVisible}" />
  96. </suki:GroupBox>
  97. </StackPanel>
  98. </Grid>
  99. <Grid
  100. Grid.Row="1"
  101. Height="86"
  102. Margin="10"
  103. ColumnDefinitions="*,2*">
  104. <Border
  105. Margin="20,10,20,10"
  106. Classes.Error="{Binding IsError}"
  107. CornerRadius="10">
  108. <Border.Styles>
  109. <Style Selector="Border">
  110. <Setter Property="Background" Value="Green" />
  111. </Style>
  112. <Style Selector="Border.Error">
  113. <Setter Property="Background" Value="Red" />
  114. </Style>
  115. </Border.Styles>
  116. <TextBlock
  117. HorizontalAlignment="Center"
  118. VerticalAlignment="Center"
  119. FontSize="36"
  120. FontStyle="Normal"
  121. FontWeight="Bold"
  122. Text="{Binding OilStatus}" />
  123. </Border>
  124. <Grid Grid.Column="1" Margin="10">
  125. <Grid.ColumnDefinitions>
  126. <ColumnDefinition />
  127. <ColumnDefinition Width="86" />
  128. <ColumnDefinition Width="86" />
  129. </Grid.ColumnDefinitions>
  130. <Border
  131. BorderBrush="Gray"
  132. BorderThickness="1"
  133. CornerRadius="6"
  134. IsVisible="{Binding OilErrors.Count}">
  135. <ItemsControl ItemsSource="{Binding OilErrors}">
  136. <ItemsControl.ItemTemplate>
  137. <DataTemplate>
  138. <StackPanel>
  139. <TextBlock
  140. HorizontalAlignment="Center"
  141. VerticalAlignment="Center"
  142. Text="{local:ResourceBinding Name}" />
  143. <local:LEDControl
  144. Width="56"
  145. Height="56"
  146. Classes.Error="{Binding Status}" />
  147. </StackPanel>
  148. </DataTemplate>
  149. </ItemsControl.ItemTemplate>
  150. </ItemsControl>
  151. </Border>
  152. <StackPanel Grid.Column="1">
  153. <TextBlock
  154. HorizontalAlignment="Center"
  155. VerticalAlignment="Center"
  156. Text="{DynamicResource PLCConnectStatus}" />
  157. <local:LEDControl
  158. Width="56"
  159. Height="56"
  160. Classes.Error="{Binding !IsConnect}" />
  161. </StackPanel>
  162. <StackPanel Grid.Column="2">
  163. <TextBlock
  164. HorizontalAlignment="Center"
  165. VerticalAlignment="Center"
  166. Classes.Warn="{Binding IsRemote}">
  167. <TextBlock.Styles>
  168. <Style Selector="TextBlock">
  169. <Setter Property="Text" Value="{DynamicResource OilLocalControl}" />
  170. </Style>
  171. <Style Selector="TextBlock.Warn">
  172. <Setter Property="Text" Value="{DynamicResource OilRemoteControl}" />
  173. </Style>
  174. </TextBlock.Styles>
  175. </TextBlock>
  176. <local:LEDControl
  177. Width="56"
  178. Height="56"
  179. Classes.Warn="{Binding !IsRemote}" />
  180. </StackPanel>
  181. </Grid>
  182. </Grid>
  183. </Grid>
  184. </UserControl>