Open wuyang26 opened 4 years ago
就是对一组数据的批量刷新,批量更新的类,譬如在实际的客户端,在某一个当前页面,可能只更新30个特定变量,在另一个页面又是另一些特定变量,用组对数据进行管理可进一步简化读写操作。 我在本项目的基础上实现了一个简单的,思路类似如下: DataItem.cs用于存储当前读取到的单个变量,最重要的是public void Refresh(DataValue dataValue) DataGroup.cs对批量数据进行管理: public DataGroupBase(List<string> keyList, List<string> tagList, OpcUaClient opcUaClient) 存储变量: public Dictionary<string,DataItemBindable> Data { get;private set; } 而 public virtual async Task<FeedbackInfo> ReadAsync() 和 public virtual async Task<FeedbackInfo> WriteAsync() 对Data进行批量操作 而订阅更新的关键代码: Data[itemKey].Refresh(notification.Value); 外部访问 Data[keyName] 目前这种方式用在WPF中非常方便,DataItem实现了数据通知(NET Standard不能实现,必须另创建一个库),在XAML中的控件只需要简单的 进行绑定,并指向KeyName即可(Word1为变量在字典中的Key): <TextBox Text="{Binding Data[Word1].Value,Mode=TwoWay}"/>
public DataGroupBase(List<string> keyList, List<string> tagList, OpcUaClient opcUaClient)
public Dictionary<string,DataItemBindable> Data { get;private set; }
public virtual async Task<FeedbackInfo> ReadAsync()
public virtual async Task<FeedbackInfo> WriteAsync()
Data[itemKey].Refresh(notification.Value);
<TextBox Text="{Binding Data[Word1].Value,Mode=TwoWay}"/>
嗯,可以发起request
就是对一组数据的批量刷新,批量更新的类,譬如在实际的客户端,在某一个当前页面,可能只更新30个特定变量,在另一个页面又是另一些特定变量,用组对数据进行管理可进一步简化读写操作。 我在本项目的基础上实现了一个简单的,思路类似如下: DataItem.cs用于存储当前读取到的单个变量,最重要的是public void Refresh(DataValue dataValue) DataGroup.cs对批量数据进行管理:
public DataGroupBase(List<string> keyList, List<string> tagList, OpcUaClient opcUaClient)
存储变量:public Dictionary<string,DataItemBindable> Data { get;private set; }
而public virtual async Task<FeedbackInfo> ReadAsync()
和public virtual async Task<FeedbackInfo> WriteAsync()
对Data进行批量操作 而订阅更新的关键代码:Data[itemKey].Refresh(notification.Value);
外部访问 Data[keyName] 目前这种方式用在WPF中非常方便,DataItem实现了数据通知(NET Standard不能实现,必须另创建一个库),在XAML中的控件只需要简单的 进行绑定,并指向KeyName即可(Word1为变量在字典中的Key):<TextBox Text="{Binding Data[Word1].Value,Mode=TwoWay}"/>