我是ReactiveUI的新手,目前对此感到满意。
但是我有一个问题:如何以ReactiveUI方式处理Windows事件/消息?

在mvvmlight中,它是这样的:

<Window ...
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    xmlns:command="http://www.galasoft.ch/mvvmlight">
<i:Interaction.Triggers>
  <i:EventTrigger EventName="Closing">
    <command:EventToCommand Command="{Binding ClosingCommand}"
                        PassEventArgsToCommand="True" />
  </i:EventTrigger>
</i:Interaction.Triggers>

但是我不知道如何在ReactiveUI中做到这一点。
也许有点像
MessageBus.Current.Listen<KeyUpEventArgs>()
    .Where(e => e.KeyCode == KeyCode.Up)
    .Subscribe(x => Console.WriteLine("Up Pressed!"));

但我不知道该如何针对大型机的Closing事件进行操作。

我在某处读到ReactiveUI的作者并不强烈反对代码背后的代码(也许我记得错了),那么建议的方式是什么?

最佳答案

有一个单独的Nuget包ReactiveUI Events,其中包含帮助程序(扩展方法),这些事件将事件公开为IObservables,您可以在内部 View 中使用。描述为in the docs

基本上, View 中的代码将包含类似于以下内容的代码:

this.Events().Closing
    .Subscribe(_ => Console.WriteLine("Bye!"));

也看看at this question

关于wpf - 如何处理Windows事件(消息)的ReactiveUI方式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38474953/

10-12 04:35