From b544d5cccd76735e034c8055918a50927b437474 Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期二, 10 十一月 2026 08:29:04 +0800
Subject: [PATCH] fix: 维护模式重复进入失败与按钮灰死 + Broker 并发验证用例

---
 HMI.AlermInfoManage/AlarmInfoManage.xaml |  293 +++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 236 insertions(+), 57 deletions(-)

diff --git a/HMI.AlermInfoManage/AlarmInfoManage.xaml b/HMI.AlermInfoManage/AlarmInfoManage.xaml
index bf97180..8ca01e9 100644
--- a/HMI.AlermInfoManage/AlarmInfoManage.xaml
+++ b/HMI.AlermInfoManage/AlarmInfoManage.xaml
@@ -4,83 +4,262 @@
              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
              xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
              xmlns:hb="clr-namespace:HMI.Base;assembly=HMI.Base"
+             xmlns:dp="clr-namespace:HMI.UI.DpUtil;assembly=HMI.UI"
              xmlns:local="clr-namespace:HMI.AlarmInfoManage"
              xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
              xmlns:pw="https://opensource.panuon.com/wpf"
              xmlns:pu="https://opensource.panuon.com/wpf-ui"
              mc:Ignorable="d"
-             Background="{StaticResource WorkspaceBackground}"
+             Background="{DynamicResource WorkspaceBackground}"
              Loaded="UserControl_Loaded"
              d:DesignHeight="450" d:DesignWidth="800">
     <UserControl.Resources>
         <ResourceDictionary>
             <ResourceDictionary.MergedDictionaries>
-                <ResourceDictionary Source="/HMI.UI;component/Style/BaseWindow.xaml"/>
-                <ResourceDictionary Source="/HMI.UI;component/Style/FormStyle.xaml"/>
-                <ResourceDictionary Source="/HMI.UI;component/Style/Colors.xaml"/>
-                <ResourceDictionary Source="/HMI.UI;component/Style/PanuonResource.xaml"/>
-                <ResourceDictionary Source="/HMI.UI;component/Style/MsgBoxStyle.xaml"/>
+                <ResourceDictionary Source="/HMI.UI;component/Style/PanuonListView.xaml"/>
             </ResourceDictionary.MergedDictionaries>
-            <uic:PathImageConverter x:Key="path2Image"/>
-            <uic:DataGridRowNumberConverter x:Key="rowNumber"/>
         </ResourceDictionary>
     </UserControl.Resources>
-
     <Border Style="{StaticResource CardBoarder}">
-        <StackPanel>
-            <DockPanel Margin="0,0,0,10">
+        <Grid>
+            <Grid.RowDefinitions>
+                <RowDefinition Height="Auto"/>
+                <RowDefinition/>
+            </Grid.RowDefinitions>
+            <DockPanel Grid.Row="0" Margin="0,0,0,10">
                 <StackPanel DockPanel.Dock="Right" Style="{StaticResource ButtonGroup}">
                     <Button Style="{StaticResource SettingBtn}" x:Name="settingBtn" Click="Button_Click"/>
                     <Button Style="{StaticResource RfhBtn}" x:Name="refreshBtn" Click="Button_Click"/>
-                    <Button Style="{StaticResource ImportBtn}" x:Name="importBtn" Click="Button_Click"/>
+                    <!--<Button Style="{StaticResource ImportBtn}" x:Name="importBtn" Click="Button_Click"/>-->
                 </StackPanel>
-                <!--<Button DockPanel.Dock="Right" pu:ButtonHelper.Icon="&#xe934;" 
-                        Style="{StaticResource DangerButton}">鍒犻櫎</Button>-->
-                
-                
-                
+
+                <!--<TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}" 
+                           VerticalAlignment="Center" HorizontalAlignment="Left" Text="{DynamicResource Alm.Title}"/>-->
                 <TextBlock DockPanel.Dock="Left" FontSize="{StaticResource TitleFontSize}" 
-                           VerticalAlignment="Center" HorizontalAlignment="Left" Text="鎶ヨ淇℃伅鍒楄〃"/>
+           VerticalAlignment="Center" HorizontalAlignment="Left" Text="{DynamicResource Alm.Record}"/>
+            </DockPanel>
+            <DockPanel Grid.Row="1">
+                <StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal" HorizontalAlignment="Right">
+                    <pu:Pagination 
+                                Height="36" Margin="10"
+    HorizontalAlignment="Left"
+    Foreground="Black"
+    ItemsBackground="Transparent"
+    ItemsCornerRadius="12"
+    ItemsSelectedBackground="{DynamicResource SecondPrimaryColor}"
+                                x:Name="page"
+                                CurrentPage="{Binding CurrentPage}" 
+                                            MaxPage="{Binding MaxPage}"/>
+                </StackPanel>
+                <!--<ListView x:Name="table" Style="{StaticResource DefaultListTable}" 
+                                  VirtualizingPanel.VirtualizationMode="Standard"
+                                  ItemsSource="{Binding Datasource}">
+                    <ListView.View>
+                        <GridView>
+                            <GridViewColumn Width="50">
+                                <GridViewColumn.Header>
+                                    <TextBlock Text="#"/>
+                                </GridViewColumn.Header>
+                                <GridViewColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <TextBlock Text="{Binding Converter={StaticResource lvRowNumber},
+RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ListViewItem,AncestorLevel=1}}"/>
+                                    </DataTemplate>
+                                </GridViewColumn.CellTemplate>
+                            </GridViewColumn>
+
+                            <GridViewColumn Width="300">
+                                <GridViewColumn.Header>
+                                    <TextBlock Text="{DynamicResource Alm.Source}"/>
+                                </GridViewColumn.Header>
+                                <GridViewColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Border Style="{StaticResource CellBorder}">
+                                            <TextBlock VerticalAlignment="Center" Text="{Binding Source}"/>
+                                        </Border>
+                                    </DataTemplate>
+                                </GridViewColumn.CellTemplate>
+                            </GridViewColumn>
+
+                            <GridViewColumn Width="500">
+                                <GridViewColumn.Header>
+                                    <TextBlock Text="{DynamicResource Alm.Code}"/>
+                                </GridViewColumn.Header>
+                                <GridViewColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Border Style="{StaticResource CellBorder}">
+                                            <TextBlock VerticalAlignment="Center" Text="{Binding AlarmCode}"/>
+                                        </Border>
+                                    </DataTemplate>
+                                </GridViewColumn.CellTemplate>
+                            </GridViewColumn>
+
+                            <GridViewColumn Width="800">
+                                <GridViewColumn.Header>
+                                    <TextBlock Text="{DynamicResource Alm.Info}"/>
+                                </GridViewColumn.Header>
+                                <GridViewColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Border Style="{StaticResource CellBorder}">
+                                            <TextBlock VerticalAlignment="Center" Text="{Binding AlarmInfo}"/>
+                                        </Border>
+                                    </DataTemplate>
+                                </GridViewColumn.CellTemplate>
+                            </GridViewColumn>
+                            <GridViewColumn Width="200">
+                                <GridViewColumn.Header>
+                                    <TextBlock Text="{DynamicResource Alm.Time}"/>
+                                </GridViewColumn.Header>
+                                <GridViewColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <Border Style="{StaticResource CellBorder}">
+                                            <TextBlock VerticalAlignment="Center" Text="{Binding Time}"/>
+                                        </Border>
+                                    </DataTemplate>
+                                </GridViewColumn.CellTemplate>
+                            </GridViewColumn>
+                        </GridView>
+                    </ListView.View>
+                </ListView>-->
+                <DataGrid x:Name="table" Style="{StaticResource DefaultDataGrid}" 
+                            dp:DataGridHelper.ShowRowNumber="True"
+                                  VirtualizingPanel.VirtualizationMode="Standard"
+                                  ItemsSource="{Binding Datasource}">
+                    <DataGrid.Columns>
+                        <DataGridTextColumn Header="#" 
+                    Binding="{Binding Header, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}, Mode=FindAncestor}}" 
+    Width="40"/>
+                        <DataGridTextColumn Width="200" Binding="{Binding Source}">
+                            <DataGridTextColumn.Header>
+                                <TextBlock Text="{DynamicResource Alm.Source}"/>
+                            </DataGridTextColumn.Header>
+                        </DataGridTextColumn>
+
+                        <DataGridTextColumn Width="200" Binding="{Binding AlarmCode}">
+                            <DataGridTextColumn.Header>
+                                <TextBlock Text="{DynamicResource Alm.Code}"/>
+                            </DataGridTextColumn.Header>
+                        </DataGridTextColumn>
+
+                        <DataGridTextColumn Width="*" Binding="{Binding AlarmInfo}">
+                            <DataGridTextColumn.Header>
+                                <TextBlock Text="{DynamicResource Alm.Info}"/>
+                            </DataGridTextColumn.Header>
+                        </DataGridTextColumn>
+
+                        <DataGridTextColumn Width="200" Binding="{Binding Time}">
+                            <DataGridTextColumn.Header>
+                                <TextBlock Text="{DynamicResource Alm.Time}"/>
+                            </DataGridTextColumn.Header>
+                        </DataGridTextColumn>
+                    </DataGrid.Columns>
+                </DataGrid>
+
+                <!--<DataGrid x:Name="table" 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 Source}">
+                                    <DataGridTextColumn.Header>
+                                        <TextBlock Text="{DynamicResource Alm.Source}"/>
+                                    </DataGridTextColumn.Header>
+                                </DataGridTextColumn>
+                                <DataGridTextColumn Width="*" Binding="{Binding AlarmCode}">
+                                    <DataGridTextColumn.Header>
+                                        <TextBlock Text="{DynamicResource Alm.Code}"/>
+                                    </DataGridTextColumn.Header>
+                                </DataGridTextColumn>
+                                <DataGridTextColumn Width="*" Binding="{Binding AlarmInfo}">
+                                    <DataGridTextColumn.Header>
+                                        <TextBlock Text="{DynamicResource Alm.Info}"/>
+                                    </DataGridTextColumn.Header>
+                                </DataGridTextColumn>
+                                <DataGridTextColumn Width="*" Binding="{Binding Time}">
+                                    <DataGridTextColumn.Header>
+                                        <TextBlock Text="{DynamicResource Alm.Time}"/>
+                                    </DataGridTextColumn.Header>
+                                </DataGridTextColumn>
+                            </DataGrid.Columns>
+                        </DataGrid>-->
             </DockPanel>
 
-            <DataGrid x:Name="table" 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 Source}" Header="鏉ユ簮" />
-                    <DataGridTextColumn Width="*" Binding="{Binding Code}" Header="缂栫爜" />
-                    <DataGridTextColumn Width="*" Binding="{Binding Info}" Header="淇℃伅" />
-                    <DataGridTextColumn Width="*" Binding="{Binding Time}" Header="鏃堕棿" />
-                    <DataGridTemplateColumn Header="鎿嶄綔" Width="100" IsReadOnly="True" CanUserResize="False">
-                        <DataGridTemplateColumn.CellTemplate>
-                            <DataTemplate>
-                                <StackPanel Orientation="Horizontal">
-                                    <Button x:Name="editBtn" Style="{StaticResource LinkButton}" 
-                            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>
+            <!--<TabControl Grid.Row="1" Style="{StaticResource HeaderTabControl}">
+                <TabItem Header="">
+                    
+                </TabItem>
+                <TabItem Header="鎶ヨ淇℃伅">
+                    <Grid>
+                        <Grid.RowDefinitions>
+                            <RowDefinition Height="Auto"/>
+                            <RowDefinition/>
+                        </Grid.RowDefinitions>
+
+                        <DataGrid Grid.Row="1" x:Name="alarmTextTable" Visibility="Hidden" Style="{x:Null}">
+                            <DataGrid.Columns>
+                                <DataGridTemplateColumn Header="" Width="50"/>
+                                <DataGridTextColumn x:Name="sb1" Width="*" Binding="{Binding AlarmCode}"/>
+                                <DataGridTextColumn x:Name="sb2" Width="*" Binding="{Binding MAlarmText_CN}"/>
+                            </DataGrid.Columns>
+                        </DataGrid>
+                        <ListView Grid.Row="1" Style="{StaticResource DefaultListTable}" ItemsSource="{Binding AlarmTexts}">
+                            <ListView.View>
+                                <GridView>
+                                    <GridViewColumn Width="50">
+                                        <GridViewColumn.Header>
+                                            <TextBlock Text="#"/>
+                                        </GridViewColumn.Header>
+                                        <GridViewColumn.CellTemplate>
+                                            <DataTemplate>
+                                                <TextBlock Text="{Binding Converter={StaticResource lvRowNumber},
+RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ListViewItem,AncestorLevel=1}}"/>
+                                            </DataTemplate>
+                                        </GridViewColumn.CellTemplate>
+                                    </GridViewColumn>
+
+                                    <GridViewColumn Width="{Binding ActualWidth,ElementName=sb1}">
+                                        <GridViewColumn.Header>
+                                            <TextBlock Text="{DynamicResource Alm.Code}"/>
+                                        </GridViewColumn.Header>
+                                        <GridViewColumn.CellTemplate>
+                                            <DataTemplate>
+                                                <Border Style="{StaticResource CellBorder}">
+                                                    <TextBlock VerticalAlignment="Center" Text="{Binding AlarmCode}"/>
+                                                </Border>
+                                            </DataTemplate>
+                                        </GridViewColumn.CellTemplate>
+                                    </GridViewColumn>
+
+                                    <GridViewColumn Width="{Binding ActualWidth,Converter={StaticResource sbC},ConverterParameter=50,ElementName=sb2}">
+                                        <GridViewColumn.Header>
+                                            <TextBlock Text="{DynamicResource Alm.Info}"/>
+                                        </GridViewColumn.Header>
+                                        <GridViewColumn.CellTemplate>
+                                            <DataTemplate>
+                                                <Border Style="{StaticResource CellBorder}">
+                                                    <TextBlock VerticalAlignment="Center" Text="{Binding MAlarmText_CN}"/>
+                                                </Border>
+                                            </DataTemplate>
+                                        </GridViewColumn.CellTemplate>
+                                    </GridViewColumn>
+                                </GridView>
+                            </ListView.View>
+                        </ListView>
+                    </Grid>
+                </TabItem>
+            </TabControl>-->
+        </Grid>
     </Border>
 </hb:PluginControl>

--
Gitblit v1.9.1