跳到主要内容

WPF 适配器

通过 Dispatcher 把通道事件切到界面线程,并提供 TextBlock 绑定和可绑定源。

var attachment = this.AttachZeus(builder => builder.AddVirtualChannel("meter"));
var meter = attachment.Host.Channels.Get("meter");
meter.BindTo(EchoText);
DataContext = meter.AsBindingSource(this);
<TextBlock Text="{Binding LastText}" />
<TextBlock Text="{Binding StateText}" />

程序集:Zeus.Presentation.Wpf(目标框架 net8.0-windows)。

API

API作用
Window.AttachZeus(...)Loaded 时启动,Closed 时释放
BindTo / BindText写入 TextBlock.Text
BindState显示通道状态
AsBindingSource(element)用该元素的 Dispatcher 发布属性变更
points.BindTo("temperature", textBlock)把点表值写到文本块

ChannelBindingSource 的属性:NameStateStateTextLastTextLastHexReceivedCount

常见问题

  • 绑定没有更新:属性名区分大小写,请对照上表。
  • 在后台线程创建 AsBindingSource:必须传入窗口或控件,才能拿到正确的 Dispatcher
  • 窗口正在关闭:此时的更新会被丢弃。