实现MQTT关联变量的别名问题,实现了,同个变量发给不同的MQTT服务器的名称不同

This commit is contained in:
2025-07-17 17:27:16 +08:00
parent 9cffb57b58
commit aea7a21d57
9 changed files with 416 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
<ui:ContentDialog
x:Class="PMSWPF.Views.Dialogs.MqttAliasBatchEditDialog"
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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
xmlns:vm="clr-namespace:PMSWPF.ViewModels.Dialogs"
xmlns:models="clr-namespace:PMSWPF.Models"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance vm:MqttAliasBatchEditDialogViewModel}"
Title="{Binding Title}"
PrimaryButtonText="确定"
CloseButtonText="取消"
>
<StackPanel Margin="10">
<TextBlock TextWrapping="WrapWithOverflow" Margin="5 10" FontSize="13" Foreground="#666">设置的别名当变量向MQTT服务器发送数据时就会按照设置设置好的别名发送请在MQTT服务端按照设置的名称接受。</TextBlock>
<DataGrid ItemsSource="{Binding VariablesToEdit}"
AutoGenerateColumns="False"
CanUserAddRows="False"
CanUserDeleteRows="False"
IsReadOnly="False">
<DataGrid.Columns>
<DataGridTextColumn Header="变量名称" Binding="{Binding VariableData.Name}" IsReadOnly="True" Width="*"/>
<DataGridTextColumn Header="标识符" Binding="{Binding Identifier}" IsReadOnly="True" Width="*"/>
<DataGridTemplateColumn Header="MQTT别名" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<hc:TextBox Text="{Binding MqttAlias, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
hc:InfoElement.Placeholder="请输入别名"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</StackPanel>
</ui:ContentDialog>

View File

@@ -0,0 +1,13 @@
using iNKORE.UI.WPF.Modern.Controls;
using PMSWPF.ViewModels.Dialogs;
namespace PMSWPF.Views.Dialogs;
public partial class MqttAliasBatchEditDialog : ContentDialog
{
public MqttAliasBatchEditDialog(MqttAliasBatchEditDialogViewModel viewModel)
{
InitializeComponent();
DataContext = viewModel;
}
}

View File

@@ -0,0 +1,23 @@
<ui:ContentDialog
x:Class="PMSWPF.Views.Dialogs.MqttAliasDialog"
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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:vm="clr-namespace:PMSWPF.ViewModels.Dialogs"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance vm:MqttAliasDialogViewModel}"
Title="{Binding Title}"
PrimaryButtonText="确定"
CloseButtonText="取消">
<Grid>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Message}" Margin="0,0,0,10" TextWrapping="Wrap"/>
<hc:TextBox Text="{Binding MqttAlias, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
hc:InfoElement.Title="MQTT别名"
hc:InfoElement.Placeholder="请输入别名"/>
</StackPanel>
</Grid>
</ui:ContentDialog>

View File

@@ -0,0 +1,13 @@
using iNKORE.UI.WPF.Modern.Controls;
using PMSWPF.ViewModels.Dialogs;
namespace PMSWPF.Views.Dialogs;
public partial class MqttAliasDialog : ContentDialog
{
public MqttAliasDialog(MqttAliasDialogViewModel viewModel)
{
InitializeComponent();
DataContext = viewModel;
}
}