1 feat: 优化MQTT服务器详情页面功能

2
    3 - 修改MQTT发布处理器,使用DisplayValue代替DataValue进行数据发布
    4 - 在MqttServiceManager中使用DisplayValue进行消息内容替换
    5 - 增加MQTT服务器编辑功能,允许用户修改服务器配置
    6 - 添加变量MQTT发布别名修改功能,支持右键菜单修改发布名称
    7 - 实现变量值变化事件监听,实时更新UI显示
    8 - 优化MQTT服务器详情页面UI,改进变量关联数据显示
    9 - 修复变量表关联MQTT服务器时的逻辑问题
   10 - 完善导航生命周期事件处理
This commit is contained in:
2025-10-05 19:57:58 +08:00
parent 7a2b67991c
commit 1f0495fbe7
6 changed files with 173 additions and 15 deletions

View File

@@ -38,14 +38,8 @@
DefaultLabelPosition="Right"
IsOpen="False"
HorizontalAlignment="Right">
<!-- 重新加载 -->
<ui:AppBarButton Command="{Binding ReloadCommand}" Label="重新加载">
<ui:AppBarButton.Icon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Refresh}" />
</ui:AppBarButton.Icon>
</ui:AppBarButton>
<ui:AppBarButton x:Name="EditButton" Label="编辑">
<ui:AppBarButton x:Name="EditButton" Label="编辑" Command="{Binding EditMqttCommand}">
<ui:AppBarButton.Icon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Edit}" />
</ui:AppBarButton.Icon>
@@ -272,18 +266,24 @@
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="关联变量" Style="{StaticResource SubtitleTextBlockStyle}" Margin="0,0,0,10"/>
<DataGrid Grid.Row="1" x:Name="AssociatedVariablesDataGrid"
ItemsSource="{Binding AssociatedVariables}"
ItemsSource="{Binding CurrentMqtt.VariableAliases}"
AutoGenerateColumns="False"
CanUserAddRows="False"
CanUserDeleteRows="False"
IsReadOnly="True"
SelectionMode="Extended">
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem Header="修改发送名称" Command="{Binding ModifyAliasCommand}" CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=DataGrid}, Path=SelectedItems[0]}"/>
</ContextMenu>
</DataGrid.ContextMenu>
<DataGrid.Columns>
<DataGridTextColumn Header="设备名称" Binding="{Binding Variable.VariableTable.Device.Name}"/>
<DataGridTextColumn Header="变量表名称" Binding="{Binding Variable.VariableTable.Name}"/>
<DataGridTextColumn Header="变量名称" Binding="{Binding Variable.Name}"/>
<DataGridTextColumn Header="MQTT发送名称" Binding="{Binding MqttAlias}"/>
<DataGridTextColumn Header="MQTT发送名称" Binding="{Binding Alias}"/>
<DataGridTextColumn Header="地址" Binding="{Binding Variable.S7Address}"/>
<DataGridTextColumn Header="数据类型" Binding="{Binding Variable.SignalType}"/>
<DataGridTextColumn Header="当前值" Binding="{Binding Variable.DataValue}"/>
<DataGridTextColumn Header="数据类型" Binding="{Binding Variable.DataType}"/>
<DataGridTextColumn Header="显示值" Binding="{Binding Variable.DisplayValue}"/>
<DataGridTextColumn Header="更新时间" Binding="{Binding Variable.UpdatedAt, StringFormat='yyyy-MM-dd HH:mm:ss'}"/>
</DataGrid.Columns>