diff --git a/Data/Entities/DbDevice.cs b/Data/Entities/DbDevice.cs index c65d4f0..5a7a0e2 100644 --- a/Data/Entities/DbDevice.cs +++ b/Data/Entities/DbDevice.cs @@ -1,3 +1,4 @@ +using System.Collections.ObjectModel; using System.Net.Sockets; using PMSWPF.Enums; using SqlSugar; diff --git a/Data/Repositories/DevicesRepositories.cs b/Data/Repositories/DevicesRepositories.cs index aa9352a..17a3f05 100644 --- a/Data/Repositories/DevicesRepositories.cs +++ b/Data/Repositories/DevicesRepositories.cs @@ -22,11 +22,12 @@ public class DevicesRepositories:BaseRepositories } DbDevice dbDevice=new DbDevice(); device.CopyTo(dbDevice); - dbDevice.VariableTables=new List(); + dbDevice.VariableTables=new (); + // 添加默认变量表 DbVariableTable dbVariableTable=new DbVariableTable(); dbVariableTable.Name = "默认变量表"; dbVariableTable.Description = "默认变量表"; - dbVariableTable.ProtocolType = ProtocolType.S7; + dbVariableTable.ProtocolType = dbDevice.ProtocolType; dbDevice.VariableTables.Add(dbVariableTable); return await _db.InsertNav(dbDevice).Include(d=>d.VariableTables).ExecuteCommandAsync(); @@ -34,7 +35,7 @@ public class DevicesRepositories:BaseRepositories public async Task> GetAll() { - return await _db.Queryable().ToListAsync(); + return await _db.Queryable().Includes(d=>d.VariableTables).ToListAsync(); } public async Task GetById(int id) { diff --git a/Extensions/ObjectExtensions.cs b/Extensions/ObjectExtensions.cs index d0f394b..23e565a 100644 --- a/Extensions/ObjectExtensions.cs +++ b/Extensions/ObjectExtensions.cs @@ -32,7 +32,7 @@ public static class ObjectExtensions /// /// /// - public static void NewTo(this Object source ) where T : new() + public static T NewTo(this Object source ) where T : new() { T target = new T(); var sourceType = source.GetType(); @@ -47,5 +47,6 @@ public static class ObjectExtensions targetProperty.SetValue(target, value, null); } } + return target; } } \ No newline at end of file diff --git a/Models/Device.cs b/Models/Device.cs index 68418b5..4be18c6 100644 --- a/Models/Device.cs +++ b/Models/Device.cs @@ -1,3 +1,4 @@ +using System.Collections.ObjectModel; using CommunityToolkit.Mvvm.ComponentModel; using PMSWPF.Enums; using SqlSugar; @@ -22,7 +23,7 @@ public partial class Device:ObservableObject [SugarColumn(ColumnDataType="varchar(20)",SqlParameterDbType=typeof(EnumToStringConvert))] public DeviceType DeviceType { get; set; } - public List? DataVariables { get; set; } + public List? VariableTables { get; set; } public ProtocolType ProtocolType { get; set; } } \ No newline at end of file diff --git a/Resources/DevicesItemTemplateDictionary.xaml b/Resources/DevicesItemTemplateDictionary.xaml index 8a25519..a664071 100644 --- a/Resources/DevicesItemTemplateDictionary.xaml +++ b/Resources/DevicesItemTemplateDictionary.xaml @@ -3,14 +3,5 @@ xmlns:ikw="http://schemas.inkore.net/lib/ui/wpf" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> - - - - - - - - - - + \ No newline at end of file diff --git a/ViewModels/DevicesViewModel.cs b/ViewModels/DevicesViewModel.cs index 5cdaac4..edffe00 100644 --- a/ViewModels/DevicesViewModel.cs +++ b/ViewModels/DevicesViewModel.cs @@ -41,6 +41,18 @@ public partial class DevicesViewModel : ViewModelBase { Device device = new Device(); dbDevice.CopyTo(device); + foreach (var dbVariableTable in dbDevice.VariableTables) + { + + if (device.VariableTables == null) + { + device.VariableTables=new List(); + } + + var table = dbVariableTable.NewTo(); + device.VariableTables.Add(table); + } + _devices.Add(device); } } diff --git a/Views/DevicesView.xaml b/Views/DevicesView.xaml index b937bb3..4128646 100644 --- a/Views/DevicesView.xaml +++ b/Views/DevicesView.xaml @@ -13,11 +13,60 @@ d:DataContext="{d:DesignInstance vm:DevicesViewModel}" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300"> + + + + + + + + + + + + + + + + + + + - - -