Files
DMS/Views/VariableTableView.xaml

127 lines
6.3 KiB
XML

<UserControl x:Class="PMSWPF.Views.VariableTableView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ikw="http://schemas.inkore.net/lib/ui/wpf"
xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
xmlns:vm="clr-namespace:PMSWPF.ViewModels"
xmlns:controls="http://schemas.inkore.net/lib/ui/wpf/modern"
mc:Ignorable="d"
Loaded="VariableTableView_OnLoaded"
d:DataContext="{d:DesignInstance vm:VariableTableViewModel}"
d:DesignHeight="600"
d:DesignWidth="800">
<UserControl.Resources>
<!-- 标签字体的样式 -->
<Style TargetType="TextBlock"
x:Key="VarTableLabelStyle">
<Setter Property="Foreground"
Value="#555" />
<Setter Property="FontSize"
Value="16" />
<Setter Property="VerticalAlignment"
Value="Center" />
</Style>
<!-- 值字体的样式 -->
<Style TargetType="TextBlock"
x:Key="VarTableValueStyle">
<Setter Property="FontWeight"
Value="Bold" />
<Setter Property="FontSize"
Value="16" />
<Setter Property="MinWidth"
Value="100" />
<Setter Property="VerticalAlignment"
Value="Center" />
</Style>
</UserControl.Resources>
<DockPanel>
<ikw:SimpleStackPanel Margin="10"
DockPanel.Dock="Top">
<!-- 操作菜单 -->
<controls:CommandBar x:Name="PrimaryCommandBar"
DefaultLabelPosition="Right"
IsOpen="False">
<ui:AppBarButton Command="{Binding AddVarDataCommand}"
CommandParameter="{Binding VariableTable}"
Label="添加变量">
<ui:AppBarButton.Icon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Add}" />
</ui:AppBarButton.Icon>
</ui:AppBarButton>
<ui:AppBarButton x:Name="EditButton"
Label="Edit">
<ui:AppBarButton.Icon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Edit}" />
</ui:AppBarButton.Icon>
</ui:AppBarButton>
<ui:AppBarButton x:Name="ShareButton"
Label="Share">
<ui:AppBarButton.Icon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Share}" />
</ui:AppBarButton.Icon>
</ui:AppBarButton>
<ui:CommandBar.SecondaryCommands>
<ui:AppBarButton x:Name="SettingsButton"
Icon="Setting"
Label="Settings" />
</ui:CommandBar.SecondaryCommands>
</controls:CommandBar>
<!-- 变量表的名称描述等信息 -->
<ikw:SimpleStackPanel Margin="5"
Orientation="Horizontal"
Spacing="10">
<ui:ToggleSwitch OnContent="启用"
OffContent="停用"
Toggled="OnIsActiveChanged"
FontSize="16"
IsOn="{Binding VariableTable.IsActive}" />
<TextBlock Style="{StaticResource VarTableLabelStyle}"
Text="变量表名称:" />
<TextBlock Style="{StaticResource VarTableValueStyle}"
Text="{Binding VariableTable.Name}" />
<TextBlock Style="{StaticResource VarTableLabelStyle}"
Text="变量表描述:" />
<TextBlock Style="{StaticResource VarTableValueStyle}"
Text="{Binding VariableTable.Description}" />
<TextBlock Style="{StaticResource VarTableLabelStyle}"
Text="所属设备:" />
<TextBlock Style="{StaticResource VarTableValueStyle}"
Text="{Binding VariableTable.Device.Name}" />
</ikw:SimpleStackPanel>
</ikw:SimpleStackPanel>
<DataGrid Margin="10"
AutoGenerateColumns="False"
CanUserSortColumns="True"
ItemsSource="{Binding DataVariables}">
<DataGrid.Columns>
<DataGridTextColumn Header="名称" Binding="{Binding Name}" />
<DataGridTextColumn Header="描述" Binding="{Binding Description}" />
<DataGridTextColumn Header="节点ID" Binding="{Binding NodeId}" />
<DataGridTextColumn Header="协议类型" Binding="{Binding ProtocolType}" />
<DataGridTextColumn Header="数据类型" Binding="{Binding DataType}" />
<DataGridTextColumn Header="信号类型" Binding="{Binding SignalType}" />
<DataGridTextColumn Header="当前值" Binding="{Binding DataValue}" />
<DataGridTextColumn Header="显示值" Binding="{Binding DisplayValue}" />
<DataGridTextColumn Header="更新时间" Binding="{Binding UpdateTime}" />
<DataGridTextColumn Header="转换规则" Binding="{Binding Converstion}" />
<DataGridCheckBoxColumn Header="启用" Binding="{Binding IsActive}" />
<DataGridCheckBoxColumn Header="保存" Binding="{Binding IsSave}" />
<DataGridTextColumn Header="保存范围" Binding="{Binding SaveRange}" />
<DataGridCheckBoxColumn Header="报警" Binding="{Binding IsAlarm}" />
<DataGridTextColumn Header="报警最小值" Binding="{Binding AlarmMin}" />
<DataGridTextColumn Header="报警最大值" Binding="{Binding AlarmMax}" />
</DataGrid.Columns>
</DataGrid>
</DockPanel>
</UserControl>