Avalonia + ReactiveUI - фармацевт для создания событий ()

Я пытаюсь разобраться в Avalonia в целом и в интеграции Reactive UI в частности. Погуглив, я понял, что Avalonia отказалась от поддержки Avalonia в ReactiveUI и пытается интегрировать ReactiveUI в саму Avalonia, чтобы поддерживать иногда нестабильный API Avalonia.

Я реализую поток, в котором двойное нажатие на строку DataGrid должно открывать окна сведений, что я могу сделать, добавив обработчик для события DoubleTapped в код позади. Однако мне было интересно, могу ли я сделать это в режиме Reactive UI, в реализации WhenActivated (), наблюдая за событием DoubleTapped.

В документации ReactiveUI я вижу, что есть интеграция Pharmacist, которая генерирует наблюдаемые для этих событий. Однако, когда я получаю ссылку на DataGrid в коде позади и пытаюсь подключиться к DoubleTapped через myDataGrid.Events(). ..., я не вижу никаких событий. Означает ли это, что в Авалонии в настоящее время нет такой поддержки?

Наконец, пока я занимаюсь этим, если я забываю о поддержке Reactive 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);

person sergevm    schedule 28.04.2021    source источник


Ответы (1)


Прикрепленное поведение также может помочь связать события для выполнения логики. Есть образец, который выглядит так, как будто он может работать при условии, что DoubleTappedEvent запущен.

Avalonia Docs - создание и привязка прикрепленных свойств

Инструменты разработчика должны помочь показать событие, когда вы ищете туннель и пузырь через DataGrid?

Инструменты разработчика AvaloniaUI, показывающие событие DoubleTapped

person Pete Davis    schedule 11.05.2021
comment
Приведенная ссылка кажется мертвой ????. В любом случае, в конце концов я действительно зарегистрировался для события DoubleTapped, используя инструменты ReactiveUI, как показано в моем отредактированном вопросе. - person sergevm; 27.06.2021
comment
Исправлена ​​ссылка на документы. - person Pete Davis; 07.07.2021