Files
DMS/DMS.WPF/Views/Dialogs/OpcUaImportDialog.xaml
2025-07-19 11:11:01 +08:00

96 lines
4.6 KiB
XML

<controls:ContentDialog x:Class="DMS.WPF.Views.Dialogs.OpcUaImportDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="http://schemas.inkore.net/lib/ui/wpf/modern"
xmlns:vm="clr-namespace:DMS.ViewModels.Dialogs"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance vm:OpcUaImportDialogViewModel}"
Title="从OPC UA服务器导入变量"
PrimaryButtonText="导入"
SecondaryButtonText="取消"
PrimaryButtonClick="ContentDialog_PrimaryButtonClick"
SecondaryButtonClick="ContentDialog_SecondaryButtonClick"
>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<!-- 节点树 -->
<TreeView Grid.Row="0"
Grid.Column="0"
ItemsSource="{Binding OpcUaNodes}"
Margin="0,0,10,0"
SelectedItemChanged="TreeView_SelectedItemChanged">
<TreeView.Style>
<Style TargetType="TreeView"
BasedOn="{StaticResource {x:Type TreeView}}">
<Setter Property="Visibility"
Value="Collapsed" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsConnected}"
Value="True">
<Setter Property="Visibility"
Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</TreeView.Style>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding DisplayName}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
<!-- 变量列表 -->
<DataGrid Grid.Row="0"
Grid.Column="1"
ItemsSource="{Binding SelectedNodeVariables}"
SelectionChanged="Selector_OnSelectionChanged"
AutoGenerateColumns="False"
IsReadOnly="True">
<DataGrid.Style>
<Style TargetType="DataGrid"
BasedOn="{StaticResource {x:Type DataGrid}}">
<Setter Property="Visibility"
Value="Collapsed" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsConnected}"
Value="True">
<Setter Property="Visibility"
Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Style>
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<CheckBox
IsChecked="{Binding DataContext.SelectAllVariables, RelativeSource={RelativeSource AncestorType=DataGrid}}" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsSelect, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="名称"
Binding="{Binding Name}" />
<DataGridTextColumn Header="节点ID"
Binding="{Binding OpcUaNodeId}" />
<DataGridTextColumn Header="数据类型"
Binding="{Binding DataType}" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</controls:ContentDialog>