Files
DMS/DMS.WPF/Views/Dialogs/MqttAliasBatchEditDialog.xaml
David P.G 6daca3eaf6 feat(mqtt): 实现MQTT别名批量修改功能
主要改动:
  - 在 MqttServerDetailView 中,允许用户在关联变量列表中进行多项选择。
  - 修改了 ModifyAlias 命令,使其能够处理多个选中项,并调用批量编辑对话框。
  - 新增了 MqttAliasBatchEditDialogViewModel 的构造函数,使其可以接收并编辑已存在的别名列表。
  - 通过 SelectedItemsBehavior 辅助类,实现了 DataGrid 中 SelectedItems 的双向绑定。
  - 更新了相关视图和视图模型,以支持新的批量操作流程。
2025-10-07 19:04:30 +08:00

87 lines
4.0 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.

<ui:ContentDialog x:Class="DMS.WPF.Views.Dialogs.MqttAliasBatchEditDialog"
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:vm="clr-namespace:DMS.WPF.ViewModels.Dialogs"
d:DataContext="{d:DesignInstance vm:MqttAliasBatchEditDialogViewModel}"
Title="批量编辑MQTT别名"
PrimaryButtonText="确定"
CloseButtonText="取消"
PrimaryButtonCommand="{Binding ConfirmCommand}"
CloseButtonCommand="{Binding CloseCommand}"
DefaultButton="Primary"
Background="White"
mc:Ignorable="d"
>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0"
Text="为目标MQTT服务器设置变量别名"
Margin="0,0,0,10"
Style="{StaticResource BodyTextBlockStyle}" />
<StackPanel Grid.Row="1" Orientation="Horizontal" Margin="0,0,0,10">
<TextBlock Text="MQTT服务器" VerticalAlignment="Center" />
<TextBlock Text="{Binding SelectedMqttServer.ServerName}"
FontWeight="Bold"
FontSize="16"
Margin="5,0,0,0"
VerticalAlignment="Center" />
</StackPanel>
<DataGrid Grid.Row="2"
ItemsSource="{Binding CurrentMqttAliases}"
AutoGenerateColumns="False"
CanUserAddRows="False"
CanUserDeleteRows="False"
Margin="0,0,0,10"
MinHeight="300"
MaxHeight="500">
<DataGrid.Columns>
<DataGridTextColumn Header="变量名称"
Binding="{Binding Variable.Name}"
IsReadOnly="True"
Width="*" />
<DataGridTextColumn Header="别名"
Binding="{Binding Alias}"
Width="*" />
</DataGrid.Columns>
</DataGrid>
<StackPanel Grid.Row="3" Orientation="Horizontal" HorizontalAlignment="Right">
<TextBox x:Name="PrefixTextBox"
Width="150"
Margin="0,0,10,0">
<TextBox.Resources>
<VisualBrush x:Key="HintText" AlignmentX="Left" AlignmentY="Center" Stretch="None">
<VisualBrush.Visual>
<TextBlock Text="输入前缀" Foreground="Gray" Margin="5,0,0,0" />
</VisualBrush.Visual>
</VisualBrush>
</TextBox.Resources>
<TextBox.Style>
<Style TargetType="TextBox">
<Setter Property="Background" Value="White" />
<Style.Triggers>
<Trigger Property="Text" Value="">
<Setter Property="Background" Value="{StaticResource HintText}" />
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
<Button Content="应用前缀"
Command="{Binding ApplySamePrefixCommand}"
CommandParameter="{Binding Text, ElementName=PrefixTextBox}" />
</StackPanel>
</Grid>
</ui:ContentDialog>