【发布时间】:2021-07-22 05:01:38
【问题描述】:
我正在尝试全面了解 Avalonia,尤其是响应式 UI 集成。通过谷歌搜索,我了解到 Avalonia 取消了对 ReactiveUI 中的 Avalonia 支持,并尝试将 ReactiveUI 集成到 Avalonia 本身,以支持有时不稳定的 Avalonia API。
我正在实现一个流程,双击 DataGrid 行应打开一个详细信息窗口,我可以通过在后面的代码中为 DoubleTapped 事件添加一个处理程序来实现。但是,我想知道是否可以通过观察 DoubleTapped 事件以反应式 UI 方式,在 WhenActivated() 实现中做到这一点。
在 ReactiveUI 文档中,我看到有一个 Pharmacist 集成,它为这些事件生成 observables。但是,当我在后面的代码中获取对 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);
【问题讨论】:
标签: reactiveui avaloniaui avalonia