如何解决Avalonia + ReactiveUI - Events() 生成药剂师
我正在尝试大致了解 Avalonia,尤其是 Reactive UI 集成。通过谷歌搜索,我了解到 Avalonia 在 ReactiveUI 中取消了对 Avalonia 的支持,并尝试将 ReactiveUI 集成到 Avalonia 本身中,以支持有时不稳定的 Avalonia API。
我正在实现一个流程,其中双击 DataGrid 行应该打开一个详细信息窗口,我可以通过在后面的代码中为 DoubleTapped 事件添加一个处理程序来实现。但是,我想知道我是否可以通过观察 DoubleTapped 事件以响应式 UI 方式在 WhenActivated() 实现中执行此操作。
在 ReactiveUI 文档中,我看到有一个 Pharmacist 集成,它为这些事件生成可观察的。但是,当我在后面的代码中获取对 DataGrid 的引用时,并尝试通过
myDataGrid.Events(). ...
,我看不到任何事件。这是否意味着 Avalonia 目前没有此类支持?
最后,当我在做的时候,如果我忘记了响应式 UI 支持,并使用了一个直接的事件处理程序,我需要做一些事情来检测它是否是被双击的行,或者其他什么其他(如标题)。我必须这样做,因为据我了解,Avalonia 中没有 EventSetter 实现。
有人知道 Avalonia 将来是否会支持这个吗?
编辑:最后我使用的 ReactiveUI 有点类似于
TreeView.Getobservable(DoubleTappedEvent)
.Subscribe(async x =>
{
var selectedItem = TreeView.SelectedItem;
if (selectedItem is TreeNodeviewmodel treeNodeviewmodel)
{
await viewmodel!.ActivateResource(treeNodeviewmodel);
}
}).disposeWith(d);
解决方法
附加行为还有助于绑定事件以执行逻辑。如果 DoubleTappedEvent
被触发,有一个示例看起来可以工作。
Avalonia Docs - Creating and binding Attached Properties
开发工具应该有助于显示您正在通过 DataGrid 寻找隧道和气泡的事件吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。