1 feat: 添加变量导入模板配置和工厂模式实现
2
3 -
在AppSettings中添加VariableImportTemplate配置项,用于设置变量导入的默认参数(IsActive、PollingIn
terval、IsHistoryEnabled、HistoryDeadband)
4 - 修改AppSettings.Load()方法,优化配置加载逻辑
5 -
实现IVariableItemViewModelFactory和VariableItemViewModelFactory,使用工厂模式创建VariableItemVie
wModel实例
6 - 在ImportOpcUaDialogViewModel中使用工厂创建VariableItemViewModel实例,以应用默认配置
7 -
在SettingViewModel和SettingView中添加变量导入设置界面和相关属性(VariablePollingInterval、Variab
leIsActive、VariableIsHistoryEnabled、VariableHistoryDeadband)
8 - 移除VariableItemViewModel构造函数中的轮询间隔默认值设置,改由工厂模式设置
9 - 优化SplashViewModel中配置加载逻辑
10 - 移除MainView.xaml.cs中已注释的代码
11 - 调整VariableTableView.xaml的UI布局和菜单结构
12 - 注册IVariableItemViewModelFactory服务
这些修改主要实现了几个关键功能:
1. 引入了工厂模式来创建VariableItemViewModel实例,确保所有新创建的变量项都应用默认配置
2. 添加了变量导入模板设置,用户可以在设置界面自定义导入变量的默认属性
3. 对相关UI进行了调整和优化
This commit is contained in:
@@ -41,85 +41,86 @@
|
||||
|
||||
<DockPanel>
|
||||
|
||||
<ikw:SimpleStackPanel DockPanel.Dock="Top" Margin="10" >
|
||||
<Grid >
|
||||
<ikw:SimpleStackPanel Margin="10" DockPanel.Dock="Top">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- 返回设备详情按钮 -->
|
||||
<Button Grid.Column="0"
|
||||
Command="{Binding NavigateToDeviceDetailCommand}"
|
||||
Style="{StaticResource ButtonDefault}"
|
||||
ToolTip="返回设备详情"
|
||||
Margin="0,0,10,0">
|
||||
|
||||
<!-- 返回设备详情按钮 -->
|
||||
<Button
|
||||
Grid.Column="0"
|
||||
Margin="0,0,10,0"
|
||||
Command="{Binding NavigateToDeviceDetailCommand}"
|
||||
Style="{StaticResource ButtonDefault}"
|
||||
ToolTip="返回设备详情">
|
||||
<Button.Content>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<ui:FontIcon
|
||||
Icon="{x:Static ui:SegoeFluentIcons.ArrowLeft8}" />
|
||||
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.ArrowLeft8}" />
|
||||
</StackPanel>
|
||||
</Button.Content>
|
||||
</Button>
|
||||
|
||||
|
||||
<!-- 操作菜单 -->
|
||||
<controls:CommandBar Grid.Column="1"
|
||||
<controls:CommandBar
|
||||
x:Name="PrimaryCommandBar"
|
||||
Grid.Column="1"
|
||||
DefaultLabelPosition="Right"
|
||||
IsOpen="False">
|
||||
<ui:AppBarButton Command="{Binding AddVariableCommand}" Label="添加变量">
|
||||
<ui:AppBarButton.Icon>
|
||||
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Add}" />
|
||||
</ui:AppBarButton.Icon>
|
||||
</ui:AppBarButton>
|
||||
<ui:AppBarButton Command="{Binding AddVariableCommand}" Label="添加变量">
|
||||
<ui:AppBarButton.Icon>
|
||||
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Add}" />
|
||||
</ui:AppBarButton.Icon>
|
||||
</ui:AppBarButton>
|
||||
|
||||
<ui:AppBarButton Command="{Binding UpdateVariableCommand}" Label="编辑变量">
|
||||
<ui:AppBarButton.Icon>
|
||||
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Edit}" />
|
||||
</ui:AppBarButton.Icon>
|
||||
</ui:AppBarButton>
|
||||
<ui:AppBarButton Command="{Binding UpdateVariableCommand}" Label="编辑变量">
|
||||
<ui:AppBarButton.Icon>
|
||||
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Edit}" />
|
||||
</ui:AppBarButton.Icon>
|
||||
</ui:AppBarButton>
|
||||
|
||||
<ui:AppBarButton Command="{Binding DeleteVariableCommand}" Label="删除变量">
|
||||
<ui:AppBarButton.Icon>
|
||||
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Delete}" />
|
||||
</ui:AppBarButton.Icon>
|
||||
</ui:AppBarButton>
|
||||
<ui:AppBarButton Command="{Binding DeleteVariableCommand}" Label="删除变量">
|
||||
<ui:AppBarButton.Icon>
|
||||
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Delete}" />
|
||||
</ui:AppBarButton.Icon>
|
||||
</ui:AppBarButton>
|
||||
|
||||
<ui:AppBarButton
|
||||
Command="{Binding ImprotFromTiaVarTableCommand}"
|
||||
Label="从TIA变量表导入"
|
||||
Visibility="{Binding IsS7ProtocolSelected, Converter={StaticResource BooleanToVisibilityConverter}}">
|
||||
<ui:AppBarButton.Icon>
|
||||
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Import}" />
|
||||
</ui:AppBarButton.Icon>
|
||||
|
||||
</ui:AppBarButton>
|
||||
|
||||
<ui:AppBarButton
|
||||
Command="{Binding ImportFromOpcUaServerCommand}"
|
||||
Label="从OPC UA服务器导入"
|
||||
Visibility="{Binding IsOpcUaProtocolSelected, Converter={StaticResource BooleanToVisibilityConverter}}">
|
||||
<ui:AppBarButton.Icon>
|
||||
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Import}" />
|
||||
</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>
|
||||
Command="{Binding ImprotFromTiaVarTableCommand}"
|
||||
Label="从TIA变量表导入"
|
||||
Visibility="{Binding IsS7ProtocolSelected, Converter={StaticResource BooleanToVisibilityConverter}}">
|
||||
<ui:AppBarButton.Icon>
|
||||
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Import}" />
|
||||
</ui:AppBarButton.Icon>
|
||||
|
||||
</controls:CommandBar>
|
||||
</Grid>
|
||||
</ui:AppBarButton>
|
||||
|
||||
<ui:AppBarButton
|
||||
Command="{Binding ImportFromOpcUaServerCommand}"
|
||||
Label="从OPC UA服务器导入"
|
||||
Visibility="{Binding IsOpcUaProtocolSelected, Converter={StaticResource BooleanToVisibilityConverter}}">
|
||||
<ui:AppBarButton.Icon>
|
||||
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Import}" />
|
||||
</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>
|
||||
</Grid>
|
||||
<!-- 变量表的名称描述等信息 -->
|
||||
<ikw:SimpleStackPanel
|
||||
Margin="5"
|
||||
@@ -148,7 +149,7 @@
|
||||
Text="{Binding SearchText, UpdateSourceTrigger=PropertyChanged}" />
|
||||
</ikw:SimpleStackPanel>
|
||||
|
||||
|
||||
|
||||
</ikw:SimpleStackPanel>
|
||||
<DataGrid
|
||||
x:Name="BasicGridView"
|
||||
@@ -206,9 +207,7 @@
|
||||
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Edit}" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem
|
||||
Command="{Binding ModifyConversionFormulaCommand}"
|
||||
Header="修改数值转换公式">
|
||||
<MenuItem Command="{Binding ModifyConversionFormulaCommand}" Header="修改数值转换公式">
|
||||
<MenuItem.Icon>
|
||||
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Edit}" />
|
||||
</MenuItem.Icon>
|
||||
@@ -235,7 +234,7 @@
|
||||
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Add}" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
|
||||
|
||||
<MenuItem
|
||||
Command="{Binding ChangeHistorySettingsCommand}"
|
||||
CommandParameter="{Binding PlacementTarget.SelectedItems, RelativeSource={RelativeSource AncestorType=ContextMenu}}"
|
||||
@@ -244,18 +243,14 @@
|
||||
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Edit}" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
|
||||
<MenuItem
|
||||
Command="{Binding ChangeAlarmSettingsCommand}"
|
||||
Header="修改报警设置">
|
||||
|
||||
<MenuItem Command="{Binding ChangeAlarmSettingsCommand}" Header="修改报警设置">
|
||||
<MenuItem.Icon>
|
||||
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Edit}" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
|
||||
<MenuItem
|
||||
Command="{Binding ToHistoryCommand}"
|
||||
Header="查看历史记录">
|
||||
|
||||
<MenuItem Command="{Binding ToHistoryCommand}" Header="查看历史记录">
|
||||
<MenuItem.Icon>
|
||||
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.History}" />
|
||||
</MenuItem.Icon>
|
||||
@@ -319,7 +314,7 @@
|
||||
</DataGridTemplateColumn.CellEditingTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<DataGridCheckBoxColumn Binding="{Binding IsActive}" Header="启用" />
|
||||
|
||||
|
||||
<DataGridTemplateColumn Header="轮询间隔(毫秒)" SortMemberPath="PollingInterval">
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
@@ -346,13 +341,13 @@
|
||||
Header="更新时间"
|
||||
IsReadOnly="True" />
|
||||
<DataGridTextColumn Binding="{Binding ConversionFormula}" Header="转换规则" />
|
||||
|
||||
|
||||
<DataGridCheckBoxColumn Binding="{Binding IsHistoryEnabled}" Header="保存" />
|
||||
<DataGridTextColumn Binding="{Binding HistoryDeadband}" Header="保存范围" />
|
||||
<DataGridCheckBoxColumn Binding="{Binding IsAlarmEnabled}" Header="报警" />
|
||||
<DataGridTextColumn Binding="{Binding AlarmMinValue}" Header="报警最小值" />
|
||||
<DataGridTextColumn Binding="{Binding AlarmMaxValue}" Header="报警最大值" />
|
||||
</DataGrid.Columns>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</DockPanel>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user