Files
DMS/DMS.WPF/Views/SettingView.xaml
David P.G d4562e600e 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进行了调整和优化
2025-10-04 20:46:39 +08:00

110 lines
5.6 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<UserControl
x:Class="DMS.WPF.Views.SettingView"
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:ikw="http://schemas.inkore.net/lib/ui/wpf"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
d:DesignHeight="450"
d:DesignWidth="800"
mc:Ignorable="d">
<StackPanel>
<ui:SettingsExpander Description="通用程序行为设置" Header="通用设置">
<ui:SettingsExpander.HeaderIcon>
<ui:FontIcon Glyph="&#xE713;" />
</ui:SettingsExpander.HeaderIcon>
<ui:SettingsExpander.Items>
<ui:SettingsCard Description="切换应用程序的主题" Header="主题切换">
<ComboBox
Width="120"
ItemsSource="{Binding Themes}"
SelectedItem="{Binding SelectedTheme, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</ui:SettingsCard>
<ui:SettingsCard
Description="开启后,点击主窗口的关闭按钮会将程序最小化到系统通知栏,而不是直接退出。"
Header="点击关闭按钮时最小化到通知栏"
IsClickEnabled="True">
<ui:ToggleSwitch IsOn="{Binding MinimizeToTrayOnClose, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</ui:SettingsCard>
<ui:SettingsCard Description="设置变量的默认轮询间隔时间(毫秒)" Header="默认轮询间隔">
<TextBox Width="120" Text="{Binding DefaultPollingInterval, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</ui:SettingsCard>
</ui:SettingsExpander.Items>
</ui:SettingsExpander>
<ui:SettingsExpander Description="设置要连接的数据库,数据全部在数据库中存放" Header="设置数据库">
<ui:SettingsExpander.HeaderIcon>
<ui:FontIcon
FontFamily="{StaticResource MdFontIcons}"
FontSize="18"
Glyph="&#xF01BC;" />
</ui:SettingsExpander.HeaderIcon>
<Button
Margin="0,10,0,0"
HorizontalAlignment="Left"
Command="{Binding TestConnectionCommand}"
Content="测试连接"
Style="{StaticResource AccentButtonStyle}" />
<ui:SettingsExpander.Items>
<ui:SettingsCard Description="使用的数据库类型如Mysql,SqlServer等" Header="数据库类型">
<ComboBox
MinWidth="200"
ItemsSource="{Binding AvailableDbTypes}"
SelectedItem="{Binding SelectedDbType}" />
</ui:SettingsCard>
<ui:SettingsCard Description="数据库所在电脑的地址" Header="服务器地址">
<TextBox MinWidth="200" Text="{Binding Server, UpdateSourceTrigger=PropertyChanged}" />
</ui:SettingsCard>
<ui:SettingsCard Description="数据库服务器端口号" Header="服务器端口">
<TextBox MinWidth="200" Text="{Binding Port, UpdateSourceTrigger=PropertyChanged}" />
</ui:SettingsCard>
<ui:SettingsCard Description="数据库登录用户名" Header="用户名">
<TextBox MinWidth="200" Text="{Binding UserId, UpdateSourceTrigger=PropertyChanged}" />
</ui:SettingsCard>
<ui:SettingsCard Description="数据库登录密码" Header="密码">
<TextBox MinWidth="200" Text="{Binding Password, UpdateSourceTrigger=PropertyChanged}" />
</ui:SettingsCard>
<ui:SettingsCard Description="要连接的数据库名称" Header="数据库名称">
<TextBox MinWidth="200" Text="{Binding DbName, UpdateSourceTrigger=PropertyChanged}" />
</ui:SettingsCard>
</ui:SettingsExpander.Items>
</ui:SettingsExpander>
<ui:SettingsExpander Description="设置变量默认导入的状态" Header="变量导入设置">
<ui:SettingsExpander.HeaderIcon>
<ui:FontIcon FontFamily="{StaticResource MdFontIcons}" Glyph="&#xF02FA;" />
</ui:SettingsExpander.HeaderIcon>
<ui:SettingsExpander.Items>
<ui:SettingsCard Description="默认变量读取的间隔时间" Header="轮询时间">
<TextBox MinWidth="200" Text="{Binding VariablePollingInterval}" />
</ui:SettingsCard>
<ui:SettingsCard Description="默认变量是否启用" Header="是否启用">
<CheckBox MinWidth="200" IsChecked="{Binding VariableIsActive}" />
</ui:SettingsCard>
<ui:SettingsCard Description="默认变量是否开启历史记录" Header="是否保存">
<CheckBox MinWidth="200" IsChecked="{Binding VariableIsHistoryEnabled}" />
</ui:SettingsCard>
<ui:SettingsCard Description="默认变量历史记录变化返回,正负超过设定的范围才保存" Header="保存范围">
<TextBox MinWidth="200" Text="{Binding VariableHistoryDeadband}" />
</ui:SettingsCard>
</ui:SettingsExpander.Items>
</ui:SettingsExpander>
</StackPanel>
</UserControl>