我试图了解一下Avalonia的总体情况,特别是响应式UI集成。通过搜索,我了解到Avalonia在ReactiveUI中取消了对Avalonia的支持,并试图将ReactiveUI集成到Avalonia本身中,以支持有时不稳定的Avalonia API。
我正在实现一个流,其中双击DataGrid行应该会打开一个详细信息窗口,这可以通过在后面的代码中为DoubleTapped事件添加一个处理程序来实现。但是,我想知道是否可以通过观察DoubleTapped事件,在WhenActivated()实现中以一种反应式UI的方式完成此操作。
在ReactiveUI文档中,我看到有一个药剂师集成,它为这些事件生成观察值。但是,当我在后台代码中获取对DataGrid的引用,并尝试通过myDataGrid.Events(). ...连接到DoubleTapped时,我看不到任何事件。这是否意味着目前在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);发布于 2021-05-11 21:52:37
附加的行为还有助于绑定事件以执行逻辑。有一个示例看起来可以在DoubleTappedEvent被触发的情况下工作。
Avalonia Docs - Creating and binding Attached Properties
开发工具应该有助于显示您正在通过DataGrid寻找隧道和气泡的事件?

https://stackoverflow.com/questions/67306998
复制相似问题