From 1fca2167068e9ef2c079ec742f20313fc6697ab1 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期一, 03 三月 2025 09:18:33 +0800
Subject: [PATCH] 完善代码;

---
 HMI.IOMonitor/IOMonitor.xaml |  308 ++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 206 insertions(+), 102 deletions(-)

diff --git a/HMI.IOMonitor/IOMonitor.xaml b/HMI.IOMonitor/IOMonitor.xaml
index 26a0da3..3cd6837 100644
--- a/HMI.IOMonitor/IOMonitor.xaml
+++ b/HMI.IOMonitor/IOMonitor.xaml
@@ -9,118 +9,222 @@
              xmlns:ui="clr-namespace:HMI.UI;assembly=HMI.UI"
              xmlns:pw="https://opensource.panuon.com/wpf"
              xmlns:pu="https://opensource.panuon.com/wpf-ui"
-             xmlns:dp="clr-namespace:HMI.UI;assembly=HMI.UI"
-             mc:Ignorable="d" 
-             Padding="10"
+             xmlns:dp="clr-namespace:HMI.UI.DpUtil;assembly=HMI.UI"
+             mc:Ignorable="d"
              Loaded="UserControl_Loaded"
              Background="{StaticResource WorkspaceBackground}"
              d:DesignHeight="450" d:DesignWidth="800">
-    <Grid>
-        <Grid.ColumnDefinitions>
-            <ColumnDefinition Width="5*"/>
-            <ColumnDefinition Width="5*"/>
-        </Grid.ColumnDefinitions>
 
-        <Border Style="{StaticResource CardBoarder}" Margin="0,0,2,0">
-            <StackPanel>
-                <DockPanel Margin="0,0,0,10">
-                    <Button DockPanel.Dock="Right" pu:ButtonHelper.Icon="&#xe934;" Style="{StaticResource DangerButton}">鍒犻櫎</Button>
-                    <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}" 
-pu:IconHelper.FontFamily="{StaticResource iconfont}"
-pu:ButtonHelper.Icon="&#xe631;" Margin="0,0,10,0" x:Name="refreshBtn" Click="Button_Click">鍒锋柊</Button>
-                    <Button DockPanel.Dock="Right" Style="{StaticResource PrimaryButton}" 
-            pu:IconHelper.FontFamily="{StaticResource iconfont}"
-            pu:ButtonHelper.Icon="&#xe61a;" Margin="0,0,10,0" x:Name="addBtn" Click="Button_Click">鏂板</Button>
-                    <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}" 
-                           VerticalAlignment="Center" HorizontalAlignment="Left" Text="鑿滃崟鍒楄〃"/>
-                </DockPanel>
+    <UserControl.Resources>
+        <Style TargetType="Label">
+            <Setter Property="VerticalContentAlignment" Value="Center"/>
+            <Setter Property="VerticalAlignment" Value="Center"/>
+        </Style>
+        <CollectionViewSource x:Key="disFilter" Source="{Binding Dis}" Filter="CollectionViewSource_Filter"/>
+        <CollectionViewSource x:Key="dosFilter" Source="{Binding Dos}" Filter="CollectionViewSource_Filter"/>
+    </UserControl.Resources>
 
-                <DataGrid Grid.Column="1" x:Name="diTable" Style="{StaticResource DefaultDataGrid}" ItemsSource="{Binding DataSource}">
-                    <DataGrid.Columns>
-                        <DataGridTemplateColumn Header="" Width="Auto" CanUserResize="False">
-                            <DataGridTemplateColumn.CellTemplate>
-                                <DataTemplate>
-                                    <CheckBox VerticalAlignment="Center" IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
-                                </DataTemplate>
-                            </DataGridTemplateColumn.CellTemplate>
-                        </DataGridTemplateColumn>
-                        <DataGridTemplateColumn Header="#" CanUserResize="False">
-                            <DataGridTemplateColumn.CellTemplate>
-                                <DataTemplate>
-                                    <TextBlock Text="{Binding Converter={StaticResource rowNumber},
-                    RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
-                                </DataTemplate>
-                            </DataGridTemplateColumn.CellTemplate>
-                        </DataGridTemplateColumn>
-                        <DataGridTextColumn Width="*" Binding="{Binding Code}" Header="缂栧彿" />
-                        <DataGridTextColumn Width="*" Binding="{Binding Name}" Header="鍚嶇О" />
-                        <DataGridTextColumn Width="*" Binding="{Binding Type}" Header="绫诲瀷" />
-                        <DataGridTextColumn Width="*" Binding="{Binding Value}" Header="DI鍊�" />
-                        <DataGridTemplateColumn Header="鎿嶄綔" Width="100" IsReadOnly="True" CanUserResize="False">
-                            <DataGridTemplateColumn.CellTemplate>
-                                <DataTemplate>
-                                    <StackPanel Orientation="Horizontal">
-                                        <Button x:Name="editBtn" Style="{StaticResource RowLink}" 
-                            Margin="0,0,10,0" 
-                            Click="Button_Click"
-                            DataContext="{Binding }">缂栬緫</Button>
-                                        <Button x:Name="delBtn" Style="{StaticResource DangerLinkButton}" 
-                            DataContext="{Binding }"
-                            Click="Button_Click">鍒犻櫎</Button>
-                                    </StackPanel>
-                                </DataTemplate>
-                            </DataGridTemplateColumn.CellTemplate>
-                        </DataGridTemplateColumn>
-                    </DataGrid.Columns>
-                </DataGrid>
-            </StackPanel>
-        </Border>
+    <Border Grid.Row="1" Style="{StaticResource CardBoarder}">
+        <Grid dp:GridHelper.Space="10">
+            <Grid.RowDefinitions>
+                <RowDefinition Height="Auto"/>
+                <RowDefinition/>
+            </Grid.RowDefinitions>
 
-        <Border Grid.Column="1" Style="{StaticResource CardBoarder}" Margin="2,0,0,0">
-            <StackPanel>
-                <DockPanel Margin="0,0,0,10" >
-                    <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}" 
-                   VerticalAlignment="Center" HorizontalAlignment="Left" Text="鑿滃崟缁撴瀯"/>
-                </DockPanel>
+            <Grid.ColumnDefinitions>
+                <ColumnDefinition Width="5*"/>
+                <ColumnDefinition Width="5*"/>
+            </Grid.ColumnDefinitions>
 
-                <DataGrid Grid.Column="1" x:Name="doTable" Style="{StaticResource DefaultDataGrid}" ItemsSource="{Binding DataSource}">
-                    <DataGrid.Columns>
-                        <DataGridTemplateColumn Header="" Width="Auto" CanUserResize="False">
-                            <DataGridTemplateColumn.CellTemplate>
-                                <DataTemplate>
-                                    <CheckBox VerticalAlignment="Center" IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
-                                </DataTemplate>
-                            </DataGridTemplateColumn.CellTemplate>
-                        </DataGridTemplateColumn>
-                        <DataGridTemplateColumn Header="#" CanUserResize="False">
-                            <DataGridTemplateColumn.CellTemplate>
-                                <DataTemplate>
-                                    <TextBlock Text="{Binding Converter={StaticResource rowNumber},
+            <DockPanel Grid.Row="0" Grid.ColumnSpan="2">
+                <StackPanel DockPanel.Dock="Right" Style="{StaticResource ButtonGroup}">
+                    <Button Style="{StaticResource PrimaryButton}" x:Name="addBtn" Click="Button_Click">鏂板</Button>
+                    <Button Style="{StaticResource PrimaryButton}" x:Name="importBtn" Click="Button_Click">瀵煎叆</Button>
+                </StackPanel>
+                
+                <TextBlock DockPanel.Dock="Left" VerticalAlignment="Center" 
+                       FontSize="{StaticResource TitleFontSize}" Text="DIO鐩戞帶"/>
+            </DockPanel>
+
+            <Border Grid.Row="1" Style="{StaticResource CardBoarder}" Padding="0">
+                <Grid dp:GridHelper.Space="10">
+                    <Grid.ColumnDefinitions>
+                        <ColumnDefinition Width="Auto"/>
+                        <ColumnDefinition />
+                        <ColumnDefinition Width="Auto"/>
+                        <ColumnDefinition Width="Auto"/>
+                    </Grid.ColumnDefinitions>
+                    <Grid.RowDefinitions>
+                        <RowDefinition Height="Auto"/>
+                        <RowDefinition Height="Auto"/>
+                        <RowDefinition Height="Auto"/>
+                        <RowDefinition/>
+                    </Grid.RowDefinitions>
+
+                    <Label Grid.Row="0" Grid.Column="0" Content="DI鍚嶇О"
+                       FontSize="{StaticResource TitleFontSize}"/>
+                    <ComboBox Grid.Row="0" Grid.Column="1" x:Name="diName" 
+                          IsEditable="True" Style="{StaticResource FormComboxStyle}"/>
+
+                    <Button Style="{StaticResource PrimaryButton}" Grid.Row="0" Grid.Column="2" 
+                        x:Name="diSelect" Click="Button_Click"
+                        >DI鏌ヨ</Button>
+                    <Button Style="{StaticResource PrimaryButton}" Grid.Row="0" Grid.Column="3"
+                        x:Name="diReset" Click="Button_Click">DI閲嶇疆</Button>
+
+                    <Label Grid.Row="1" Grid.Column="0" Content="DI缂栧彿"
+       FontSize="{StaticResource TitleFontSize}"/>
+                    <ComboBox Grid.Row="1" Grid.Column="1" x:Name="diCode" 
+                          IsEditable="True"
+                          Style="{StaticResource FormComboxStyle}"/>
+
+                    <Label Grid.Row="2" Grid.Column="0" Content="DI鍒嗙粍"
+       FontSize="{StaticResource TitleFontSize}"/>
+                    <ComboBox Grid.Row="2" Grid.Column="1" x:Name="diGroup" 
+                          IsEditable="True" Style="{StaticResource FormComboxStyle}"/>
+
+                    <DataGrid Grid.Row="3" Grid.ColumnSpan="4" x:Name="diTable" Style="{StaticResource DefaultDataGrid}" 
+                          ItemsSource="{Binding Source={StaticResource disFilter}}">
+
+                        <DataGrid.RowStyle>
+                            <Style TargetType="DataGridRow" BasedOn="{StaticResource {x:Static pu:StyleKeys.DataGridRowStyle}}">
+                                <Style.Triggers>
+                                    <DataTrigger Binding="{Binding Value}" Value="True">
+                                        <Setter Property="Background" Value="{StaticResource DangerColor}"/>
+                                        <Setter Property="Foreground" Value="{StaticResource DangerColorContrast}"/>
+                                    </DataTrigger>
+                                </Style.Triggers>
+                            </Style>
+                        </DataGrid.RowStyle>
+                        <DataGrid.Columns>
+                            <!--<DataGridTemplateColumn Header="" Width="Auto" CanUserResize="False">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <CheckBox VerticalAlignment="Center" IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>-->
+                            <DataGridTemplateColumn Header="#" CanUserResize="False">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <TextBlock Text="{Binding Converter={StaticResource rowNumber},
     RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
-                                </DataTemplate>
-                            </DataGridTemplateColumn.CellTemplate>
-                        </DataGridTemplateColumn>
-                        <DataGridTextColumn Width="*" Binding="{Binding Code}" Header="缂栧彿"/>
-                        <DataGridTextColumn Width="*" Binding="{Binding Name}" Header="鍚嶇О" />
-                        <DataGridTextColumn Width="*" Binding="{Binding Type}" Header="绫诲瀷" />
-                        <DataGridTextColumn Width="*" Binding="{Binding Value}" Header="DO鍊�" />
-                        <DataGridTemplateColumn Header="鎿嶄綔" Width="100" IsReadOnly="True" CanUserResize="False">
-                            <DataGridTemplateColumn.CellTemplate>
-                                <DataTemplate>
-                                    <StackPanel Orientation="Horizontal" ui:StackPanelHelper.ChildSpace="10">
-                                        <Button x:Name="editBtn" Style="{StaticResource RowLink}"
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
+                            <DataGridTextColumn Width="*" Binding="{Binding Code}" Header="缂栧彿" />
+                            <DataGridTextColumn Width="*" Binding="{Binding Name}" Header="鍚嶇О" />
+                            <DataGridTextColumn Width="*" Binding="{Binding Type}" Header="绫诲瀷" />
+                            <DataGridTextColumn Width="*" Binding="{Binding Value}" Header="DI鍊�" />
+                            <!--<DataGridTemplateColumn Header="鎿嶄綔" Width="100" IsReadOnly="True" CanUserResize="False">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <StackPanel Orientation="Horizontal">
+                                            <Button x:Name="editBtn" Style="{StaticResource RowLink}" 
+            Margin="0,0,10,0" 
             Click="Button_Click"
             DataContext="{Binding }">缂栬緫</Button>
-                                        <Button x:Name="delBtn" Style="{StaticResource DangerLinkButton}" 
+                                            <Button x:Name="delBtn" Style="{StaticResource DangerLinkButton}" 
             DataContext="{Binding }"
             Click="Button_Click">鍒犻櫎</Button>
-                                    </StackPanel>
-                                </DataTemplate>
-                            </DataGridTemplateColumn.CellTemplate>
-                        </DataGridTemplateColumn>
-                    </DataGrid.Columns>
-                </DataGrid>
-            </StackPanel>
-        </Border>
-    </Grid>
+                                        </StackPanel>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>-->
+                        </DataGrid.Columns>
+                    </DataGrid>
+                </Grid>
+
+
+            </Border>
+
+            <Border Grid.Row="1" Grid.Column="1" Style="{StaticResource CardBoarder}" Padding="0">
+                <Grid dp:GridHelper.Space="10">
+                    <Grid.ColumnDefinitions>
+                        <ColumnDefinition Width="Auto"/>
+                        <ColumnDefinition />
+                        <ColumnDefinition Width="Auto"/>
+                        <ColumnDefinition Width="Auto"/>
+                    </Grid.ColumnDefinitions>
+                    <Grid.RowDefinitions>
+                        <RowDefinition Height="Auto"/>
+                        <RowDefinition Height="Auto"/>
+                        <RowDefinition Height="Auto"/>
+                        <RowDefinition/>
+                    </Grid.RowDefinitions>
+
+                    <Label Grid.Row="0" Grid.Column="0" Content="DO鍚嶇О"
+                   FontSize="{StaticResource TitleFontSize}"/>
+                    <ComboBox Grid.Row="0" Grid.Column="1" x:Name="doName"
+                          IsEditable="True" Style="{StaticResource FormComboxStyle}"/>
+
+                    <Button Style="{StaticResource PrimaryButton}" Grid.Row="0" Grid.Column="2"
+                        x:Name="doSelect" Click="Button_Click">DO鏌ヨ</Button>
+                    <Button Style="{StaticResource PrimaryButton}" Grid.Row="0" Grid.Column="3"
+                        x:Name="doReset" Click="Button_Click"
+                        >DO閲嶇疆</Button>
+
+                    <Label Grid.Row="1" Grid.Column="0" Content="DO缂栧彿"
+   FontSize="{StaticResource TitleFontSize}"/>
+                    <ComboBox Grid.Row="1" Grid.Column="1" x:Name="doCode"
+                          IsEditable="True" Style="{StaticResource FormComboxStyle}"/>
+
+                    <Label Grid.Row="2" Grid.Column="0" Content="DO鍒嗙粍"
+   FontSize="{StaticResource TitleFontSize}"/>
+                    <ComboBox Grid.Row="2" Grid.Column="1" x:Name="doGroup"
+                          IsEditable="True" Style="{StaticResource FormComboxStyle}"/>
+
+                    <DataGrid Grid.Row="3" Grid.ColumnSpan="4" x:Name="doTable" Style="{StaticResource DefaultDataGrid}" 
+                      ItemsSource="{Binding Source={StaticResource dosFilter}}">
+                        <DataGrid.RowStyle>
+                            <Style TargetType="DataGridRow" BasedOn="{StaticResource {x:Static pu:StyleKeys.DataGridRowStyle}}">
+                                <Style.Triggers>
+                                    <DataTrigger Binding="{Binding Value}" Value="True">
+                                        <Setter Property="Background" Value="{StaticResource DangerColor}"/>
+                                        <Setter Property="Foreground" Value="{StaticResource DangerColorContrast}"/>
+                                    </DataTrigger>
+                                </Style.Triggers>
+                            </Style>
+                        </DataGrid.RowStyle>
+                        <DataGrid.Columns>
+                            <!--<DataGridTemplateColumn Header="" Width="Auto" CanUserResize="False">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <CheckBox VerticalAlignment="Center" IsChecked="{Binding Selected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>-->
+                            <DataGridTemplateColumn Header="#" CanUserResize="False">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <TextBlock Text="{Binding Converter={StaticResource rowNumber},
+RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>
+                            <DataGridTextColumn Width="*" Binding="{Binding Code}" Header="缂栧彿" />
+                            <DataGridTextColumn Width="*" Binding="{Binding Name}" Header="鍚嶇О" />
+                            <DataGridTextColumn Width="*" Binding="{Binding Type}" Header="绫诲瀷" />
+                            <DataGridTextColumn Width="*" Binding="{Binding Value}" Header="DO鍊�" />
+                            <!--<DataGridTemplateColumn Header="鎿嶄綔" Width="100" IsReadOnly="True" CanUserResize="False">
+                                <DataGridTemplateColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <StackPanel Orientation="Horizontal">
+                                            <Button x:Name="editBtn" Style="{StaticResource RowLink}" 
+        Margin="0,0,10,0" 
+        Click="Button_Click"
+        DataContext="{Binding }">缂栬緫</Button>
+                                            <Button x:Name="delBtn" Style="{StaticResource DangerLinkButton}" 
+        DataContext="{Binding }"
+        Click="Button_Click">鍒犻櫎</Button>
+                                        </StackPanel>
+                                    </DataTemplate>
+                                </DataGridTemplateColumn.CellTemplate>
+                            </DataGridTemplateColumn>-->
+                        </DataGrid.Columns>
+                    </DataGrid>
+                </Grid>
+            </Border>
+        </Grid>
+    </Border>
 </hb:PluginControl>
\ No newline at end of file

--
Gitblit v1.9.1