alielie
2026-06-04 771a0e7b6b1276087515bbe94de28358cb92963b
HMI.AlermInfoManage/AlarmSettingList.xaml
@@ -10,40 +10,406 @@
            xmlns:dp="clr-namespace:HMI.UI.DpUtil;assembly=HMI.UI"
            mc:Ignorable="d"
            Title="{Binding SelectedValue,Mode=OneWay}"
            SizeToContent="Height"
            Width="800"
            Height="600"
            BorderBrush="#3E3E45"
            BorderThickness="1"
            Foreground="Black"
            pu:WindowXCaption.Background="{StaticResource PrimaryColor}"
            pu:WindowXModalDialog.ButtonStyle="{StaticResource ModalButton}"
            pu:WindowXCaption.Foreground="#FFF"
            pu:WindowXModalDialog.Buttons="OK"
            pu:WindowXModalDialog.OKButtonContent="关闭"
            pu:WindowXModalDialog.OKButtonContent="{DynamicResource App.Close}"
            Width="1000"
            Height="600"
            InteropOwnersMask="False"
            Loaded="WindowX_Loaded"
            WindowStartupLocation="CenterScreen"
            pu:WindowXModalDialog.ButtonPanelMargin="0,30,10,10">
    <Window.Resources>
            WindowStartupLocation="CenterOwner"
            Style="{StaticResource ModalWindow}">
    <pu:WindowX.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <pu:StyleDictionary Includes="TabControl"/>
                <ResourceDictionary Source="/HMI.UI;component/Resources/Font/Font.xaml"/>
                <ResourceDictionary Source="/HMI.UI;component/Style/Colors.xaml"/>
                <ResourceDictionary Source="/HMI.UI;component/Style/PanuonListView.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>
            <Style x:Key="EditLink" TargetType="Button" BasedOn="{StaticResource RowLink}">
                <Setter Property="Content" Value="{DynamicResource App.Edit}"/>
                <Setter Property="Foreground" Value="{DynamicResource PrimaryColor}"/>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Path=IsMouseOver,
                RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ListViewItem,AncestorLevel=1}}"
         Value="True">
                        <Setter Property="Foreground" Value="#FFF"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding Path=IsSelected,
       RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ListViewItem,AncestorLevel=1}}"
Value="True">
                        <Setter Property="Foreground" Value="#FFF"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ResourceDictionary>
    </pu:WindowX.Resources>
    <Grid Margin="10">
        <Border BorderThickness="1" BorderBrush="Gray">
            <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition />
        </Grid.RowDefinitions>
        <StackPanel Grid.Row="0" Orientation="Horizontal" HorizontalAlignment="Right"
            Margin="0,0,0,10"
                    dp:StackPanelHelper.ChildSpace="10">
            <Button Style="{StaticResource AddBtn}" x:Name="addBtn" Click="Button_Click"/>
            <Button Style="{StaticResource RfhBtn}" x:Name="refreshBtn" Click="Button_Click"/>
            <Button Style="{StaticResource ExportBtn}" x:Name="exportBtn" Click="Button_Click"/>
            <Button Style="{StaticResource ImportBtn}" x:Name="importBtn" Click="Button_Click"/>
            <Button Style="{StaticResource DelBtn}" x:Name="delBatchBtn" Click="Button_Click"/>
        </StackPanel>
        <Grid Grid.Row="1">
            <TabControl Style="{StaticResource HeaderTabControl}" SelectedIndex="{Binding ItemIndex}" x:Name="tab">
                <TabItem Header="DB块报警">
                    <!--<ListView Style="{StaticResource DefaultListTable}" ItemsSource="{Binding Datasource}">
                        <ListView.View>
                            <GridView AllowsColumnReorder="False">
                                <GridViewColumn Width="30">
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <CheckBox VerticalAlignment="Center"
IsChecked="{Binding IsSelected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="60" Header="#">
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Border Style="{StaticResource CellBorder}">
                                                <TextBlock Style="{StaticResource ListTableTextBlock}"  Text="{Binding Converter={StaticResource lvRowNumber},
RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ListViewItem,AncestorLevel=1}}"/>
                                            </Border>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="100">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="{DynamicResource Alm.DbAddress}"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Border Style="{StaticResource CellBorder}">
                                                <TextBlock Style="{StaticResource ListTableTextBlock}"
                                                           Text="{Binding DBAddress}"/>
                                            </Border>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="150">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="{DynamicResource Alm.StartAddress}"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Border Style="{StaticResource CellBorder}">
                                                <TextBlock Style="{StaticResource ListTableTextBlock}"
   Text="{Binding StartAddress}"/>
                                            </Border>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="100">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="{DynamicResource Alm.DbLength}"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Border Style="{StaticResource CellBorder}">
                                                <TextBlock Style="{StaticResource ListTableTextBlock}"
                                                   Text="{Binding Length}"/>
                                            </Border>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="150">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="报警代码"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Border Style="{StaticResource CellBorder}">
                                                <TextBlock Style="{StaticResource ListTableTextBlock}"
                   Text="{Binding AlarmCode}"/>
                                            </Border>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="250">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="{DynamicResource Alm.Description}"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Border Style="{StaticResource CellBorder}">
                                                <TextBlock Style="{StaticResource ListTableTextBlock}"
Text="{Binding Description}"/>
                                            </Border>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="120">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="{DynamicResource App.Opt}"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <StackPanel Orientation="Horizontal" dp:StackPanelHelper.ChildSpace="10">
                                                <Button x:Name="editBtn" Style="{StaticResource EditLink}"
                Click="Button_Click" Tag="{Binding }"/>
                                                <Button x:Name="delBtn" Style="{StaticResource DeleteLink}"
                Click="Button_Click" Tag="{Binding }"/>
                                            </StackPanel>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                            </GridView>
                        </ListView.View>
                    </ListView>-->
                    <DataGrid Style="{StaticResource DefaultDataGrid}"
                              dp:DataGridHelper.ShowRowNumber="True"
                              ItemsSource="{Binding BlockDatasource}">
                        <DataGrid.Columns>
                            <DataGridTemplateColumn Width="20" CanUserResize="False">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <CheckBox VerticalAlignment="Center"
HorizontalAlignment="Center" IsChecked="{Binding IsSelected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>
                            <DataGridTextColumn Header="#"
                Binding="{Binding Header, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}, Mode=FindAncestor}}"
                                                Width="40"/>
                            <DataGridTextColumn Width="100" Binding="{Binding DBAddress}">
                                <DataGridTextColumn.Header>
                                    <TextBlock Text="{DynamicResource Alm.DbAddress}"/>
                                </DataGridTextColumn.Header>
                            </DataGridTextColumn>
                            <DataGridTextColumn Width="150" Binding="{Binding StartAddress}">
                                <DataGridTextColumn.Header>
                                    <TextBlock Text="{DynamicResource Alm.StartAddress}"/>
                                </DataGridTextColumn.Header>
                            </DataGridTextColumn>
                            <DataGridTextColumn Width="100" Binding="{Binding Length}">
                                <DataGridTextColumn.Header>
                                    <TextBlock Text="{DynamicResource Alm.DbLength}"/>
                                </DataGridTextColumn.Header>
                            </DataGridTextColumn>
                            <DataGridTextColumn Width="150" Binding="{Binding AlarmCode}">
                                <DataGridTextColumn.Header>
                                    <TextBlock Text="报警代码"/>
                                </DataGridTextColumn.Header>
                            </DataGridTextColumn>
                            <DataGridTextColumn Width="*" Binding="{Binding Level}">
                                <DataGridTextColumn.Header>
                                    <TextBlock Text="级别"/>
                                </DataGridTextColumn.Header>
                            </DataGridTextColumn>
                            <DataGridTextColumn Width="*" Binding="{Binding Description}">
                                <DataGridTextColumn.Header>
                                    <TextBlock Text="{DynamicResource Alm.Description}"/>
                                </DataGridTextColumn.Header>
                            </DataGridTextColumn>
                            <DataGridTemplateColumn Width="120">
                                <DataGridTemplateColumn.Header>
                                    <TextBlock Text="{DynamicResource App.Opt}"/>
                                </DataGridTemplateColumn.Header>
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <StackPanel Orientation="Horizontal" dp:StackPanelHelper.ChildSpace="10">
                                            <Button x:Name="editBtn" Style="{StaticResource EditLink}"
Click="Button_Click" Tag="{Binding }"/>
                                            <Button x:Name="delBtn" Style="{StaticResource DeleteLink}"
Click="Button_Click" Tag="{Binding }"/>
                                        </StackPanel>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>
                        </DataGrid.Columns>
                    </DataGrid>
                </TabItem>
                <TabItem Header="标志位报警">
                    <DataGrid Style="{StaticResource DefaultDataGrid}"
                              dp:DataGridHelper.ShowRowNumber="True"
                              ItemsSource="{Binding MarkDatasource}">
                        <DataGrid.Columns>
                            <DataGridTemplateColumn Width="Auto" CanUserResize="False">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <CheckBox VerticalAlignment="Center"
HorizontalAlignment="Center" IsChecked="{Binding IsSelected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>
                            <DataGridTextColumn Header="#"
                Binding="{Binding Header, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}, Mode=FindAncestor}}" Width="40"/>
                            <DataGridTextColumn Width="100" Binding="{Binding DBAddress}">
                                <DataGridTextColumn.Header>
                                    <TextBlock Text="{DynamicResource Alm.DbAddress}"/>
                                </DataGridTextColumn.Header>
                            </DataGridTextColumn>
                            <DataGridTextColumn Width="150" Binding="{Binding StartAddress}">
                                <DataGridTextColumn.Header>
                                    <TextBlock Text="{DynamicResource Alm.StartAddress}"/>
                                </DataGridTextColumn.Header>
                            </DataGridTextColumn>
                            <DataGridTextColumn Width="100" Binding="{Binding Length}">
                                <DataGridTextColumn.Header>
                                    <TextBlock Text="{DynamicResource Alm.DbLength}"/>
                                </DataGridTextColumn.Header>
                            </DataGridTextColumn>
                            <DataGridTextColumn Width="*" Binding="{Binding Description}">
                                <DataGridTextColumn.Header>
                                    <TextBlock Text="{DynamicResource Alm.Description}"/>
                                </DataGridTextColumn.Header>
                            </DataGridTextColumn>
                            <DataGridTemplateColumn Width="120">
                                <DataGridTemplateColumn.Header>
                                    <TextBlock Text="{DynamicResource App.Opt}"/>
                                </DataGridTemplateColumn.Header>
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <StackPanel Orientation="Horizontal" dp:StackPanelHelper.ChildSpace="10">
                                            <Button x:Name="editBtn" Style="{StaticResource EditLink}"
Click="Button_Click" Tag="{Binding }"/>
                                            <Button x:Name="delBtn" Style="{StaticResource DeleteLink}"
Click="Button_Click" Tag="{Binding }"/>
                                        </StackPanel>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>
                        </DataGrid.Columns>
                    </DataGrid>
                    <!--<ListView Style="{StaticResource DefaultListTable}" ItemsSource="{Binding MarkDatasource}">
                        <ListView.View>
                            <GridView AllowsColumnReorder="False">
                                <GridViewColumn Width="30">
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <CheckBox VerticalAlignment="Center"
IsChecked="{Binding IsSelected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="60" Header="#">
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Border Style="{StaticResource CellBorder}">
                                                <TextBlock Style="{StaticResource ListTableTextBlock}"  Text="{Binding Converter={StaticResource lvRowNumber},
RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ListViewItem,AncestorLevel=1}}"/>
                                            </Border>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="220">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="{DynamicResource Alm.DbAddress}"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Border Style="{StaticResource CellBorder}">
                                                <TextBlock Style="{StaticResource ListTableTextBlock}"
                                                           Text="{Binding DBAddress}"/>
                                            </Border>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="180">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="{DynamicResource Alm.StartAddress}"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Border Style="{StaticResource CellBorder}">
                                                <TextBlock Style="{StaticResource ListTableTextBlock}"
   Text="{Binding StartAddress}"/>
                                            </Border>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="150">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="{DynamicResource Alm.DbLength}"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Border Style="{StaticResource CellBorder}">
                                                <TextBlock Style="{StaticResource ListTableTextBlock}"
                                                   Text="{Binding Length}"/>
                                            </Border>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="200">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="{DynamicResource Alm.Description}"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Border Style="{StaticResource CellBorder}">
                                                <TextBlock Style="{StaticResource ListTableTextBlock}"
                   Text="{Binding Description}"/>
                                            </Border>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="120">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="{DynamicResource App.Opt}"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <StackPanel Orientation="Horizontal" dp:StackPanelHelper.ChildSpace="10">
                                                <Button x:Name="editBtn" Style="{StaticResource EditLink}"
                Click="Button_Click" Tag="{Binding }"/>
                                                <Button x:Name="delBtn" Style="{StaticResource DeleteLink}"
                Click="Button_Click" Tag="{Binding }"/>
                                            </StackPanel>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                            </GridView>
                        </ListView.View>
                    </ListView>-->
                </TabItem>
            </TabControl>
            <!--<Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition />
                </Grid.RowDefinitions>
                <ListBox ItemsSource="{Binding Items}" SelectedValue="{Binding SelectedValue}" BorderThickness="0">
                <ListBox ItemsSource="{Binding Items}" SelectedIndex="{Binding ItemIndex}" BorderThickness="0">
                    <ListBox.ItemsPanel>
                        <ItemsPanelTemplate>
                            <StackPanel Orientation="Horizontal"/>
@@ -58,7 +424,9 @@
                                    <ControlTemplate TargetType="ListBoxItem">
                                        <Border x:Name="border" Background="LightGray" 
Padding="10" Margin="0" BorderThickness="0">
                                            <!-- 内容呈现器 -->
                                            -->
            <!-- 内容呈现器 -->
            <!--
                                            <StackPanel>
                                                <ContentPresenter  Content="{TemplateBinding Content}" 
                   ContentStringFormat="{TemplateBinding ContentStringFormat}" 
@@ -81,53 +449,13 @@
                <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right" 
                            Margin="0,0,0,10"
                                    dp:StackPanelHelper.ChildSpace="10">
                    <Button Style="{StaticResource PrimaryButton}" pu:ButtonHelper.Icon="&#xe631;" x:Name="refreshBtn" Click="Button_Click">刷新</Button>
                    <Button Style="{StaticResource PrimaryButton}" pu:ButtonHelper.Icon="&#xe631;" x:Name="addBtn" Click="Button_Click">新增</Button>
                    <Button Style="{StaticResource DangerButton}" pu:ButtonHelper.Icon="&#xe631;" x:Name="delBatchBtn" Click="Button_Click">删除</Button>
                    <Button Style="{StaticResource AddBtn}" x:Name="addBtn" Click="Button_Click"/>
                    <Button Style="{StaticResource RfhBtn}" x:Name="refreshBtn" Click="Button_Click"/>
                    <Button Style="{StaticResource DelBtn}" x:Name="delBatchBtn" Click="Button_Click"/>
                </StackPanel>
                <DataGrid x:Name="table" Grid.Row="2"
         Style="{StaticResource DefaultDataGrid}" ItemsSource="{Binding Datasource}">
                    <DataGrid.Columns>
                        <DataGridTemplateColumn Header="" Width="Auto" CanUserResize="False">
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <CheckBox VerticalAlignment="Center"
                                              IsChecked="{Binding IsSelected,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 DBAddress}" Header="DB地址" />
                        <DataGridTextColumn Width="*" Binding="{Binding StartAddress}" Header="起始地址" />
                        <DataGridTextColumn Width="*" Binding="{Binding Length}" Header="DB长度" />
                        <DataGridTemplateColumn Header="操作" Width="100" IsReadOnly="True" CanUserResize="False">
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <StackPanel Orientation="Horizontal">
                                        <Button x:Name="editBtn" Tag="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
                                                Style="{StaticResource RowLink}"
        Margin="0,0,10,0"
        Click="Button_Click"
        DataContext="{Binding }">编辑</Button>
                                        <Button x:Name="delBtn" Tag="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"
                                                Style="{StaticResource DangerLinkButton}"
        DataContext="{Binding }"
        Click="Button_Click">删除</Button>
                                    </StackPanel>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
                    </DataGrid.Columns>
                </DataGrid>
            </Grid>
        </Border>
            </Grid>-->
        </Grid>
    </Grid>
</pu:WindowX>