完成Mqtt服务器页的导航

This commit is contained in:
2025-07-04 23:34:54 +08:00
parent f86ce8194b
commit 2e9586bfdf
6 changed files with 24 additions and 4 deletions

View File

@@ -77,6 +77,8 @@ public partial class App : Application
container.AddSingleton<VariableTableView>(); container.AddSingleton<VariableTableView>();
container.AddScoped<DeviceDetailViewModel>(); container.AddScoped<DeviceDetailViewModel>();
container.AddScoped<DeviceDetailView>(); container.AddScoped<DeviceDetailView>();
container.AddScoped<MqttsViewModel>();
container.AddScoped<MqttsView>();
Services = container.BuildServiceProvider(); Services = container.BuildServiceProvider();
// 启动服务 // 启动服务
Services.GetRequiredService<GrowlNotificationService>(); Services.GetRequiredService<GrowlNotificationService>();

View File

@@ -46,7 +46,7 @@ public class MqttRepository
var result = await _db.Queryable<DbMqtt>().ToListAsync(); var result = await _db.Queryable<DbMqtt>().ToListAsync();
stopwatch.Stop(); stopwatch.Stop();
Logger.Info($"获取所有Mqtt配置耗时{stopwatch.ElapsedMilliseconds}ms"); Logger.Info($"获取所有Mqtt配置耗时{stopwatch.ElapsedMilliseconds}ms");
return result.CopyTo<List<Mqtt>>(); return result.Select(m=>m.CopyTo<Mqtt>()).ToList();
} }
} }

View File

@@ -83,6 +83,9 @@ public class DataServicesHelper
case "设备": case "设备":
navgateVM = App.Current.Services.GetRequiredService<DevicesViewModel>(); navgateVM = App.Current.Services.GetRequiredService<DevicesViewModel>();
break; break;
case "Mqtt服务器":
navgateVM = App.Current.Services.GetRequiredService<MqttsViewModel>();
break;
case "数据转换": case "数据转换":
navgateVM = App.Current.Services.GetRequiredService<DataTransformViewModel>(); navgateVM = App.Current.Services.GetRequiredService<DataTransformViewModel>();
break; break;

View File

@@ -158,7 +158,6 @@ public partial class MainViewModel : ViewModelBase
menu.Data = _dataServices.Devices.FirstOrDefault(d => d.Id == menu.DataId); menu.Data = _dataServices.Devices.FirstOrDefault(d => d.Id == menu.DataId);
break; break;
case MenuType.VariableTableMenu: case MenuType.VariableTableMenu:
VariableTableViewModel varTableVM = VariableTableViewModel varTableVM =
App.Current.Services.GetRequiredService<VariableTableViewModel>(); App.Current.Services.GetRequiredService<VariableTableViewModel>();
varTableVM.VariableTable = varTableVM.VariableTable =

View File

@@ -33,8 +33,20 @@ public partial class MqttsViewModel : ViewModelBase
_dialogService = dialogService; _dialogService = dialogService;
_dataServices = dataServices; _dataServices = dataServices;
MessageHelper.SendLoadMessage(LoadTypes.Mqtts); if (dataServices.Mqtts == null || dataServices.Mqtts.Count == 0)
_dataServices.OnMqttListChanged += (mqtts) => { Mqtts = new ObservableCollection<Mqtt>(mqtts); }; {
MessageHelper.SendLoadMessage(LoadTypes.Mqtts);
}
else
{
Mqtts = new ObservableCollection<Mqtt>(dataServices.Mqtts);
}
_dataServices.OnMqttListChanged += (mqtts) =>
{
Mqtts = new ObservableCollection<Mqtt>(mqtts);
};
} }
[RelayCommand] [RelayCommand]

View File

@@ -76,6 +76,10 @@
<DataTemplate DataType="{x:Type vm:DataTransformViewModel}"> <DataTemplate DataType="{x:Type vm:DataTransformViewModel}">
<local:DataTransformView /> <local:DataTransformView />
</DataTemplate> </DataTemplate>
<!-- Mqtt服务器页 -->
<DataTemplate DataType="{x:Type vm:MqttsViewModel}">
<local:MqttsView />
</DataTemplate>
<!-- 设置页 --> <!-- 设置页 -->
<DataTemplate DataType="{x:Type vm:SettingViewModel}"> <DataTemplate DataType="{x:Type vm:SettingViewModel}">
<local:SettingView /> <local:SettingView />