继续修改触发器(未完成,修改一个触发器可以添加多个变量)
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Text.Json;
|
||||
using System.Windows;
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
@@ -5,8 +6,10 @@ using CommunityToolkit.Mvvm.Input;
|
||||
using DMS.Application.DTOs;
|
||||
using DMS.Application.Interfaces;
|
||||
using DMS.Application.Interfaces.Database;
|
||||
using DMS.Core.Interfaces;
|
||||
using DMS.Core.Models.Triggers;
|
||||
using DMS.WPF.Interfaces;
|
||||
using DMS.WPF.ViewModels.Items;
|
||||
|
||||
namespace DMS.WPF.ViewModels.Dialogs
|
||||
{
|
||||
@@ -17,13 +20,20 @@ namespace DMS.WPF.ViewModels.Dialogs
|
||||
{
|
||||
private readonly IVariableAppService _variableAppService; // To populate variable selection dropdown
|
||||
private readonly IDialogService _dialogService;
|
||||
private readonly IDataStorageService _dataStorageService;
|
||||
private readonly INotificationService _notificationService;
|
||||
|
||||
[ObservableProperty]
|
||||
private string _searchText = "";
|
||||
|
||||
[ObservableProperty]
|
||||
private TriggerDefinitionDto _trigger = new();
|
||||
|
||||
[ObservableProperty]
|
||||
private List<VariableDto> _availableVariables = new();
|
||||
|
||||
[ObservableProperty]
|
||||
private ObservableCollection<VariableItemViewModel> _selectedVariables = new();
|
||||
|
||||
// Properties for easier binding in XAML for SendEmail action config
|
||||
[ObservableProperty]
|
||||
@@ -38,13 +48,29 @@ namespace DMS.WPF.ViewModels.Dialogs
|
||||
public TriggerDialogViewModel(
|
||||
IVariableAppService variableAppService,
|
||||
IDialogService dialogService,
|
||||
IDataStorageService dataStorageService,
|
||||
INotificationService notificationService)
|
||||
{
|
||||
_variableAppService = variableAppService ?? throw new ArgumentNullException(nameof(variableAppService));
|
||||
_dialogService = dialogService ?? throw new ArgumentNullException(nameof(dialogService));
|
||||
_dataStorageService = dataStorageService;
|
||||
_notificationService = notificationService ?? throw new ArgumentNullException(nameof(notificationService));
|
||||
}
|
||||
|
||||
partial void OnSearchTextChanged(string searchText)
|
||||
{
|
||||
SelectedVariables.Clear();
|
||||
foreach (var variableKv in _dataStorageService.Variables)
|
||||
{
|
||||
if (variableKv.Value.Name.Contains(SearchText))
|
||||
{
|
||||
SelectedVariables.Add(variableKv.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 初始化视图模型(传入待编辑的触发器)
|
||||
/// </summary>
|
||||
@@ -59,6 +85,19 @@ namespace DMS.WPF.ViewModels.Dialogs
|
||||
|
||||
// Load available variables for selection dropdown
|
||||
await LoadVariablesAsync();
|
||||
|
||||
// Load selected variables
|
||||
if (Trigger.VariableIds != null && Trigger.VariableIds.Any())
|
||||
{
|
||||
foreach (var variableId in Trigger.VariableIds)
|
||||
{
|
||||
var variable = AvailableVariables.FirstOrDefault(v => v.Id == variableId);
|
||||
if (variable != null)
|
||||
{
|
||||
// SelectedVariables.Add(variable);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Parse action configuration if it's SendEmail
|
||||
if (Trigger.Action == ActionType.SendEmail && !string.IsNullOrEmpty(Trigger.ActionConfigurationJson))
|
||||
@@ -109,9 +148,9 @@ namespace DMS.WPF.ViewModels.Dialogs
|
||||
private async Task SaveAsync()
|
||||
{
|
||||
// Basic validation
|
||||
if (Trigger.VariableId == default(int))
|
||||
if (SelectedVariables == null || !SelectedVariables.Any())
|
||||
{
|
||||
_notificationService.ShowWarn("请选择关联的变量");
|
||||
_notificationService.ShowWarn("请至少选择一个关联的变量");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -121,6 +160,9 @@ namespace DMS.WPF.ViewModels.Dialogs
|
||||
return;
|
||||
}
|
||||
|
||||
// 设置选中的变量ID
|
||||
Trigger.VariableIds = SelectedVariables.Select(v => v.Id).ToList();
|
||||
|
||||
// Validate condition-specific fields
|
||||
switch (Trigger.Condition)
|
||||
{
|
||||
|
||||
@@ -107,7 +107,7 @@ namespace DMS.WPF.ViewModels.Triggers
|
||||
var triggerToEdit = new TriggerDefinitionDto
|
||||
{
|
||||
Id = SelectedTrigger.Id,
|
||||
VariableId = SelectedTrigger.VariableId,
|
||||
VariableIds = new List<int>(SelectedTrigger.VariableIds),
|
||||
IsActive = SelectedTrigger.IsActive,
|
||||
Condition = SelectedTrigger.Condition,
|
||||
Threshold = SelectedTrigger.Threshold,
|
||||
|
||||
@@ -1,173 +1,261 @@
|
||||
<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">
|
||||
|
||||
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:vmd="clr-namespace:DMS.WPF.ViewModels.Dialogs"
|
||||
xmlns:hc="https://handyorg.github.io/handycontrol"
|
||||
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"
|
||||
d:DataContext="{d:DesignInstance vmd:TriggerDialogViewModel}"
|
||||
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}" />
|
||||
<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">
|
||||
<GroupBox Header="基本信息"
|
||||
Padding="5">
|
||||
<StackPanel>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<StackPanel>
|
||||
<hc:TextBox hc:InfoElement.Title="搜索变量:"
|
||||
Text="{Binding SearchText, UpdateSourceTrigger=PropertyChanged }">
|
||||
</hc:TextBox>
|
||||
<DataGrid
|
||||
AutoGenerateColumns="False"
|
||||
CanUserAddRows="False"
|
||||
ItemsSource="{Binding SelectedVariables}">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Binding="{Binding Name}" Header="变量名"></DataGridTextColumn>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
|
||||
</StackPanel>
|
||||
|
||||
</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"/>
|
||||
<Label Content="描述:"
|
||||
Width="100"
|
||||
VerticalAlignment="Center" />
|
||||
<TextBox Text="{Binding Trigger.Description, UpdateSourceTrigger=PropertyChanged}"
|
||||
Width="300"
|
||||
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"/>
|
||||
|
||||
<CheckBox Content="激活"
|
||||
IsChecked="{Binding Trigger.IsActive}"
|
||||
Margin="0,0,0,5" />
|
||||
</StackPanel>
|
||||
</GroupBox>
|
||||
|
||||
<!-- Condition Section -->
|
||||
<GroupBox Header="触发条件" Padding="5" Margin="0,10,0,0">
|
||||
<GroupBox Header="触发条件"
|
||||
Padding="5"
|
||||
Margin="0,10,0,0">
|
||||
<StackPanel>
|
||||
<DockPanel Margin="0,0,0,5">
|
||||
<Label Content="条件类型:" Width="100" VerticalAlignment="Center"/>
|
||||
<Label Content="条件类型:"
|
||||
Width="100"
|
||||
VerticalAlignment="Center" />
|
||||
<ComboBox ItemsSource="{Binding Source={StaticResource ConditionTypeEnum}}"
|
||||
SelectedItem="{Binding Trigger.Condition}"
|
||||
Width="200" HorizontalAlignment="Left"/>
|
||||
Width="200"
|
||||
HorizontalAlignment="Left" />
|
||||
</DockPanel>
|
||||
|
||||
<!-- Conditional Fields based on Condition Type -->
|
||||
<StackPanel Visibility="{Binding Trigger.Condition, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=GreaterThan}">
|
||||
<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"/>
|
||||
<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}">
|
||||
|
||||
<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"/>
|
||||
<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}">
|
||||
|
||||
<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"/>
|
||||
<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}">
|
||||
|
||||
<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"/>
|
||||
<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}">
|
||||
|
||||
<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"/>
|
||||
<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"/>
|
||||
<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}">
|
||||
|
||||
<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"/>
|
||||
<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"/>
|
||||
<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">
|
||||
<GroupBox Header="触发动作"
|
||||
Padding="5"
|
||||
Margin="0,10,0,0">
|
||||
<StackPanel>
|
||||
<DockPanel Margin="0,0,0,5">
|
||||
<Label Content="动作类型:" Width="100" VerticalAlignment="Center"/>
|
||||
<Label Content="动作类型:"
|
||||
Width="100"
|
||||
VerticalAlignment="Center" />
|
||||
<ComboBox ItemsSource="{Binding Source={StaticResource ActionTypeEnum}}"
|
||||
SelectedItem="{Binding Trigger.Action}"
|
||||
Width="200" HorizontalAlignment="Left"/>
|
||||
Width="200"
|
||||
HorizontalAlignment="Left" />
|
||||
</DockPanel>
|
||||
|
||||
<!-- Conditional Fields based on Action Type -->
|
||||
<StackPanel Visibility="{Binding Trigger.Action, Converter={StaticResource LocalEnumToVisibilityConverter}, ConverterParameter=SendEmail}">
|
||||
<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"/>
|
||||
<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"/>
|
||||
<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"/>
|
||||
<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
|
||||
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
|
||||
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">
|
||||
<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"/>
|
||||
<Label Content="抑制持续时间 (秒):"
|
||||
Width="150"
|
||||
VerticalAlignment="Center" />
|
||||
<TextBox
|
||||
Text="{Binding Trigger.SuppressionDuration, Converter={StaticResource NullableTimeSpanToSecondsConverter}, UpdateSourceTrigger=PropertyChanged}"
|
||||
Width="100"
|
||||
HorizontalAlignment="Left" />
|
||||
</DockPanel>
|
||||
</StackPanel>
|
||||
</GroupBox>
|
||||
|
||||
Reference in New Issue
Block a user