继续修改触发器

This commit is contained in:
2025-09-14 19:13:40 +08:00
parent a079cf8de8
commit a8d240b4f9
24 changed files with 515 additions and 397 deletions

View File

@@ -0,0 +1,176 @@
<ui:ContentDialog x:Class="DMS.WPF.Views.Dialogs.TriggerDialog"
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:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
xmlns:enums="clr-namespace:DMS.Core.Models.Triggers;assembly=DMS.Core"
xmlns:vc="clr-namespace:DMS.WPF.ValueConverts"
xmlns:ex="clr-namespace:DMS.Extensions"
xmlns:converters="clr-namespace:DMS.WPF.Converters"
Title="{Binding Title}"
mc:Ignorable="d"
d:DesignHeight="600" d:DesignWidth="600"
MinWidth="500" MinHeight="500"
PrimaryButtonText="{Binding PrimaryButText}"
CloseButtonText="取消"
PrimaryButtonCommand="{Binding SaveCommand}"
CloseButtonCommand="{Binding CancelCommand}"
DefaultButton="Primary">
<ui:ContentDialog.Resources>
<converters:EnumToVisibilityConverter x:Key="LocalEnumToVisibilityConverter"/>
<ex:EnumBindingSource x:Key="ConditionTypeEnum" EnumType="{x:Type enums:ConditionType}" />
<ex:EnumBindingSource x:Key="ActionTypeEnum" EnumType="{x:Type enums:ActionType}" />
</ui:ContentDialog.Resources>
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel Margin="10">
<!-- Basic Info Section -->
<GroupBox Header="基本信息" Padding="5">
<StackPanel>
<DockPanel Margin="0,0,0,5">
<Label Content="关联变量:" Width="100" VerticalAlignment="Center"/>
<ComboBox ItemsSource="{Binding AvailableVariables}"
DisplayMemberPath="Name"
SelectedValuePath="Id"
SelectedValue="{Binding Trigger.VariableId}"
Width="200" HorizontalAlignment="Left"/>
</DockPanel>
<DockPanel Margin="0,0,0,5">
<Label Content="描述:" Width="100" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.Description, UpdateSourceTrigger=PropertyChanged}"
Width="300" HorizontalAlignment="Left"/>
</DockPanel>
<CheckBox Content="激活" IsChecked="{Binding Trigger.IsActive}" Margin="0,0,0,5"/>
</StackPanel>
</GroupBox>
<!-- Condition Section -->
<GroupBox Header="触发条件" Padding="5" Margin="0,10,0,0">
<StackPanel>
<DockPanel Margin="0,0,0,5">
<Label Content="条件类型:" Width="100" VerticalAlignment="Center"/>
<ComboBox ItemsSource="{Binding Source={StaticResource ConditionTypeEnum}}"
SelectedItem="{Binding Trigger.Condition}"
Width="200" HorizontalAlignment="Left"/>
</DockPanel>
<!-- Conditional Fields based on Condition Type -->
<StackPanel Visibility="{Binding Trigger.Condition, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=GreaterThan}">
<DockPanel Margin="0,0,0,5">
<Label Content="阈值:" Width="100" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.Threshold, UpdateSourceTrigger=PropertyChanged}"
Width="100" HorizontalAlignment="Left"/>
</DockPanel>
</StackPanel>
<StackPanel Visibility="{Binding Trigger.Condition, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=LessThan}">
<DockPanel Margin="0,0,0,5">
<Label Content="阈值:" Width="100" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.Threshold, UpdateSourceTrigger=PropertyChanged}"
Width="100" HorizontalAlignment="Left"/>
</DockPanel>
</StackPanel>
<StackPanel Visibility="{Binding Trigger.Condition, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=EqualTo}">
<DockPanel Margin="0,0,0,5">
<Label Content="阈值:" Width="100" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.Threshold, UpdateSourceTrigger=PropertyChanged}"
Width="100" HorizontalAlignment="Left"/>
</DockPanel>
</StackPanel>
<StackPanel Visibility="{Binding Trigger.Condition, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=NotEqualTo}">
<DockPanel Margin="0,0,0,5">
<Label Content="阈值:" Width="100" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.Threshold, UpdateSourceTrigger=PropertyChanged}"
Width="100" HorizontalAlignment="Left"/>
</DockPanel>
</StackPanel>
<StackPanel Visibility="{Binding Trigger.Condition, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=InRange}">
<DockPanel Margin="0,0,0,5">
<Label Content="下限:" Width="100" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.LowerBound, UpdateSourceTrigger=PropertyChanged}"
Width="100" HorizontalAlignment="Left"/>
</DockPanel>
<DockPanel Margin="0,0,0,5">
<Label Content="上限:" Width="100" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.UpperBound, UpdateSourceTrigger=PropertyChanged}"
Width="100" HorizontalAlignment="Left"/>
</DockPanel>
</StackPanel>
<StackPanel Visibility="{Binding Trigger.Condition, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=OutOfRange}">
<DockPanel Margin="0,0,0,5">
<Label Content="下限:" Width="100" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.LowerBound, UpdateSourceTrigger=PropertyChanged}"
Width="100" HorizontalAlignment="Left"/>
</DockPanel>
<DockPanel Margin="0,0,0,5">
<Label Content="上限:" Width="100" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.UpperBound, UpdateSourceTrigger=PropertyChanged}"
Width="100" HorizontalAlignment="Left"/>
</DockPanel>
</StackPanel>
</StackPanel>
</GroupBox>
<!-- Action Section -->
<GroupBox Header="触发动作" Padding="5" Margin="0,10,0,0">
<StackPanel>
<DockPanel Margin="0,0,0,5">
<Label Content="动作类型:" Width="100" VerticalAlignment="Center"/>
<ComboBox ItemsSource="{Binding Source={StaticResource ActionTypeEnum}}"
SelectedItem="{Binding Trigger.Action}"
Width="200" HorizontalAlignment="Left"/>
</DockPanel>
<!-- Conditional Fields based on Action Type -->
<StackPanel Visibility="{Binding Trigger.Action, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=SendEmail}">
<DockPanel Margin="0,0,0,5">
<Label Content="收件人 (分号分隔):" Width="150" VerticalAlignment="Top"/>
<TextBox Text="{Binding EmailRecipients, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
AcceptsReturn="True" TextWrapping="Wrap"
Width="350" Height="60" HorizontalAlignment="Left"/>
</DockPanel>
<DockPanel Margin="0,0,0,5">
<Label Content="邮件主题模板:" Width="150" VerticalAlignment="Center"/>
<TextBox Text="{Binding EmailSubjectTemplate, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
Width="350" HorizontalAlignment="Left"/>
</DockPanel>
<DockPanel Margin="0,0,0,5">
<Label Content="邮件内容模板:" Width="150" VerticalAlignment="Top"/>
<TextBox Text="{Binding EmailBodyTemplate, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
AcceptsReturn="True" TextWrapping="Wrap"
Width="350" Height="100" HorizontalAlignment="Left"/>
</DockPanel>
</StackPanel>
<!-- Add placeholders for other action types if needed -->
<StackPanel Visibility="{Binding Trigger.Action, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=ActivateAlarm}">
<TextBlock Text="配置激活报警动作..." Margin="5"/>
</StackPanel>
<StackPanel Visibility="{Binding Trigger.Action, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=WriteToLog}">
<TextBlock Text="配置写入日志动作..." Margin="5"/>
</StackPanel>
</StackPanel>
</GroupBox>
<!-- Suppression Section -->
<GroupBox Header="抑制设置" Padding="5" Margin="0,10,0,0">
<StackPanel>
<DockPanel Margin="0,0,0,5">
<Label Content="抑制持续时间 (秒):" Width="150" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.SuppressionDuration, Converter={StaticResource NullableTimeSpanToSecondsConverter}, UpdateSourceTrigger=PropertyChanged}"
Width="100" HorizontalAlignment="Left"/>
</DockPanel>
</StackPanel>
</GroupBox>
</StackPanel>
</ScrollViewer>
</ui:ContentDialog>

View File

@@ -0,0 +1,32 @@
using System.Windows.Controls;
using DMS.WPF.Helper;
using iNKORE.UI.WPF.Modern.Controls;
namespace DMS.WPF.Views.Dialogs
{
/// <summary>
/// TriggerDialog.xaml 的交互逻辑
/// </summary>
public partial class TriggerDialog : ContentDialog
{
private const int ContentAreaMaxWidth = 1000;
private const int ContentAreaMaxHeight = 800;
public TriggerDialog()
{
InitializeComponent();
this.Opened += OnOpened;
}
private void OnOpened(ContentDialog sender, ContentDialogOpenedEventArgs args)
{
// 修改对话框内容的最大宽度和最大高度
var backgroundElementBorder = VisualTreeFinder.FindVisualChildByName<Border>(this, "BackgroundElement");
if (backgroundElementBorder != null)
{
backgroundElementBorder.MaxWidth = ContentAreaMaxWidth;
backgroundElementBorder.MaxHeight = ContentAreaMaxHeight;
}
}
}
}

View File

@@ -12,6 +12,7 @@
xmlns:tb="http://hardcodet.net/taskbar"
xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
xmlns:vm="clr-namespace:DMS.WPF.ViewModels"
xmlns:vmt="clr-namespace:DMS.WPF.ViewModels.Triggers"
Title="设备管理系统"
Width="1080"
Height="800"
@@ -112,6 +113,10 @@
<DataTemplate DataType="{x:Type vm:EmailManagementViewModel}">
<local:EmailManagementView />
</DataTemplate>
<!-- 触发器管理页 -->
<DataTemplate DataType="{x:Type vmt:TriggersViewModel}">
<local:TriggersView/>
</DataTemplate>
<!-- 设备详情页 -->
<DataTemplate DataType="{x:Type vm:DeviceDetailViewModel}">
<local:DeviceDetailView />

View File

@@ -1,183 +0,0 @@
<UserControl x:Class="DMS.WPF.Views.Triggers.TriggerEditorView"
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:local="clr-namespace:DMS.WPF.Views.Triggers"
xmlns:viewmodels="clr-namespace:DMS.WPF.ViewModels.Triggers;assembly=DMS.WPF"
xmlns:converters="clr-namespace:DMS.WPF.Converters;assembly=DMS.WPF"
mc:Ignorable="d"
d:DesignHeight="600" d:DesignWidth="600"
MinWidth="500" MinHeight="500">
<UserControl.DataContext>
<viewmodels:TriggerEditorViewModel />
</UserControl.DataContext>
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- Header -->
<TextBlock Grid.Row="0" Text="{Binding Title}" FontSize="18" FontWeight="Bold" Margin="0,0,0,10"/>
<!-- ScrollViewer for form content -->
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
<StackPanel>
<!-- Basic Info Section -->
<GroupBox Header="基本信息" Padding="5">
<StackPanel>
<DockPanel Margin="0,0,0,5">
<Label Content="关联变量:" Width="100" VerticalAlignment="Center"/>
<ComboBox ItemsSource="{Binding AvailableVariables}"
DisplayMemberPath="Name"
SelectedValuePath="Id"
SelectedValue="{Binding Trigger.VariableId}"
Width="200" HorizontalAlignment="Left"/>
</DockPanel>
<DockPanel Margin="0,0,0,5">
<Label Content="描述:" Width="100" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.Description, UpdateSourceTrigger=PropertyChanged}"
Width="300" HorizontalAlignment="Left"/>
</DockPanel>
<CheckBox Content="激活" IsChecked="{Binding Trigger.IsActive}" Margin="0,0,0,5"/>
</StackPanel>
</GroupBox>
<!-- Condition Section -->
<GroupBox Header="触发条件" Padding="5" Margin="0,10,0,0">
<StackPanel>
<DockPanel Margin="0,0,0,5">
<Label Content="条件类型:" Width="100" VerticalAlignment="Center"/>
<ComboBox ItemsSource="{Binding Source={StaticResource ConditionTypeEnum}}"
SelectedItem="{Binding Trigger.Condition}"
Width="200" HorizontalAlignment="Left"/>
</DockPanel>
<!-- Conditional Fields based on Condition Type -->
<StackPanel Visibility="{Binding Trigger.Condition, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=GreaterThan}">
<DockPanel Margin="0,0,0,5">
<Label Content="阈值:" Width="100" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.Threshold, UpdateSourceTrigger=PropertyChanged}"
Width="100" HorizontalAlignment="Left"/>
</DockPanel>
</StackPanel>
<StackPanel Visibility="{Binding Trigger.Condition, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=LessThan}">
<DockPanel Margin="0,0,0,5">
<Label Content="阈值:" Width="100" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.Threshold, UpdateSourceTrigger=PropertyChanged}"
Width="100" HorizontalAlignment="Left"/>
</DockPanel>
</StackPanel>
<StackPanel Visibility="{Binding Trigger.Condition, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=EqualTo}">
<DockPanel Margin="0,0,0,5">
<Label Content="阈值:" Width="100" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.Threshold, UpdateSourceTrigger=PropertyChanged}"
Width="100" HorizontalAlignment="Left"/>
</DockPanel>
</StackPanel>
<StackPanel Visibility="{Binding Trigger.Condition, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=NotEqualTo}">
<DockPanel Margin="0,0,0,5">
<Label Content="阈值:" Width="100" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.Threshold, UpdateSourceTrigger=PropertyChanged}"
Width="100" HorizontalAlignment="Left"/>
</DockPanel>
</StackPanel>
<StackPanel Visibility="{Binding Trigger.Condition, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=InRange}">
<DockPanel Margin="0,0,0,5">
<Label Content="下限:" Width="100" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.LowerBound, UpdateSourceTrigger=PropertyChanged}"
Width="100" HorizontalAlignment="Left"/>
</DockPanel>
<DockPanel Margin="0,0,0,5">
<Label Content="上限:" Width="100" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.UpperBound, UpdateSourceTrigger=PropertyChanged}"
Width="100" HorizontalAlignment="Left"/>
</DockPanel>
</StackPanel>
<StackPanel Visibility="{Binding Trigger.Condition, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=OutOfRange}">
<DockPanel Margin="0,0,0,5">
<Label Content="下限:" Width="100" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.LowerBound, UpdateSourceTrigger=PropertyChanged}"
Width="100" HorizontalAlignment="Left"/>
</DockPanel>
<DockPanel Margin="0,0,0,5">
<Label Content="上限:" Width="100" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.UpperBound, UpdateSourceTrigger=PropertyChanged}"
Width="100" HorizontalAlignment="Left"/>
</DockPanel>
</StackPanel>
</StackPanel>
</GroupBox>
<!-- Action Section -->
<GroupBox Header="触发动作" Padding="5" Margin="0,10,0,0">
<StackPanel>
<DockPanel Margin="0,0,0,5">
<Label Content="动作类型:" Width="100" VerticalAlignment="Center"/>
<ComboBox ItemsSource="{Binding Source={StaticResource ActionTypeEnum}}"
SelectedItem="{Binding Trigger.Action}"
Width="200" HorizontalAlignment="Left"/>
</DockPanel>
<!-- Conditional Fields based on Action Type -->
<StackPanel Visibility="{Binding Trigger.Action, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=SendEmail}">
<DockPanel Margin="0,0,0,5">
<Label Content="收件人 (分号分隔):" Width="150" VerticalAlignment="Top"/>
<TextBox Text="{Binding EmailRecipients, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
AcceptsReturn="True" TextWrapping="Wrap"
Width="350" Height="60" HorizontalAlignment="Left"/>
</DockPanel>
<DockPanel Margin="0,0,0,5">
<Label Content="邮件主题模板:" Width="150" VerticalAlignment="Center"/>
<TextBox Text="{Binding EmailSubjectTemplate, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
Width="350" HorizontalAlignment="Left"/>
</DockPanel>
<DockPanel Margin="0,0,0,5">
<Label Content="邮件内容模板:" Width="150" VerticalAlignment="Top"/>
<TextBox Text="{Binding EmailBodyTemplate, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
AcceptsReturn="True" TextWrapping="Wrap"
Width="350" Height="100" HorizontalAlignment="Left"/>
</DockPanel>
</StackPanel>
<!-- Add placeholders for other action types if needed -->
<StackPanel Visibility="{Binding Trigger.Action, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=ActivateAlarm}">
<TextBlock Text="配置激活报警动作..." Margin="5"/>
</StackPanel>
<StackPanel Visibility="{Binding Trigger.Action, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=WriteToLog}">
<TextBlock Text="配置写入日志动作..." Margin="5"/>
</StackPanel>
</StackPanel>
</GroupBox>
<!-- Suppression Section -->
<GroupBox Header="抑制设置" Padding="5" Margin="0,10,0,0">
<StackPanel>
<DockPanel Margin="0,0,0,5">
<Label Content="抑制持续时间 (秒):" Width="150" VerticalAlignment="Center"/>
<TextBox Text="{Binding Trigger.SuppressionDuration, Converter={StaticResource NullableTimeSpanToSecondsConverter}, UpdateSourceTrigger=PropertyChanged}"
Width="100" HorizontalAlignment="Left"/>
</DockPanel>
</StackPanel>
</GroupBox>
</StackPanel>
</ScrollViewer>
<!-- Buttons -->
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,10,0,0">
<Button Content="{Binding PrimaryButText}" Command="{Binding SaveCommand}" Margin="0,0,5,0" Width="80"/>
<Button Content="取消" Command="{Binding CancelCommand}" Width="80"/>
</StackPanel>
</Grid>
</UserControl>

View File

@@ -1,15 +0,0 @@
using System.Windows.Controls;
namespace DMS.WPF.Views.Triggers
{
/// <summary>
/// TriggerEditorView.xaml 的交互逻辑
/// </summary>
public partial class TriggerEditorView : UserControl
{
public TriggerEditorView()
{
InitializeComponent();
}
}
}

View File

@@ -1,15 +0,0 @@
using System.Windows.Controls;
namespace DMS.WPF.Views.Triggers
{
/// <summary>
/// TriggersView.xaml 的交互逻辑
/// </summary>
public partial class TriggersView : Page
{
public TriggersView()
{
InitializeComponent();
}
}
}

View File

@@ -1,16 +1,12 @@
<Page x:Class="DMS.WPF.Views.Triggers.TriggersView"
<UserControl x:Class="DMS.WPF.Views.TriggersView"
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:local="clr-namespace:DMS.WPF.Views.Triggers"
xmlns:viewmodels="clr-namespace:DMS.WPF.ViewModels.Triggers;assembly=DMS.WPF"
xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800"
Title="TriggersView">
<Page.DataContext>
<viewmodels:TriggersViewModel />
</Page.DataContext>
d:DesignHeight="450" d:DesignWidth="800">
<Grid Margin="10">
<Grid.RowDefinitions>
@@ -19,12 +15,28 @@
</Grid.RowDefinitions>
<!-- Toolbar -->
<StackPanel Grid.Row="0" Orientation="Horizontal" Margin="0,0,0,10">
<Button Content="添加" Command="{Binding AddTriggerCommand}" Margin="0,0,5,0"/>
<Button Content="编辑" Command="{Binding EditTriggerCommand}" Margin="0,0,5,0"/>
<Button Content="删除" Command="{Binding DeleteTriggerCommand}" Margin="0,0,5,0"/>
<Button Content="刷新" Command="{Binding LoadTriggersCommand}" Margin="0,0,5,0"/>
</StackPanel>
<ui:CommandBar Grid.Row="0" DefaultLabelPosition="Right" IsOpen="False" Margin="0,0,0,10">
<ui:AppBarButton Command="{Binding AddTriggerCommand}" Label="添加触发器">
<ui:AppBarButton.Icon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Add}" />
</ui:AppBarButton.Icon>
</ui:AppBarButton>
<ui:AppBarButton Command="{Binding EditTriggerCommand}" Label="编辑触发器">
<ui:AppBarButton.Icon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Edit}" />
</ui:AppBarButton.Icon>
</ui:AppBarButton>
<ui:AppBarButton Command="{Binding DeleteTriggerCommand}" Label="删除触发器">
<ui:AppBarButton.Icon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Delete}" />
</ui:AppBarButton.Icon>
</ui:AppBarButton>
<ui:AppBarButton Command="{Binding LoadTriggersCommand}" Label="刷新">
<ui:AppBarButton.Icon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Refresh}" />
</ui:AppBarButton.Icon>
</ui:AppBarButton>
</ui:CommandBar>
<!-- Triggers List -->
<DataGrid Grid.Row="1"
@@ -48,4 +60,4 @@
</DataGrid.Columns>
</DataGrid>
</Grid>
</Page>
</UserControl>

View File

@@ -0,0 +1,18 @@
using System.Windows.Controls;
using DMS.WPF.ViewModels.Triggers;
using Microsoft.Extensions.DependencyInjection;
namespace DMS.WPF.Views
{
/// <summary>
/// TriggersView.xaml 的交互逻辑
/// </summary>
public partial class TriggersView : UserControl
{
public TriggersView()
{
InitializeComponent();
DataContext = App.Current.Services.GetRequiredService<TriggersViewModel>();
}
}
}