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 的属性:Name、State、StateText、LastText、LastHex、ReceivedCount。
常见问题
- 绑定没有更新:属性名区分大小写,请对照上表。
- 在后台线程创建
AsBindingSource:必须传入窗口或控件,才能拿到正确的Dispatcher。 - 窗口正在关闭:此时的更新会被丢弃。