如何以 ReactiveUI 方式处理 windows 事件(消息)?
How to handle windows event (message) the ReactiveUI way?
我是 ReactiveUI 的新手,目前对它很满意。
但我有一个问题:How to handle windows event/message the ReactiveUI way?
在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的作者并不强烈反对code behind代码(可能我记错了),那么建议的方法是什么?
有一个单独的 Nuget 包 ReactiveUI Events, which contains helpers (extension methods) exposing events as IObservables
which you can use inside views. It is described in the docs。
基本上,您在视图中隐藏的代码将包含与此类似的内容:
this.Events().Closing
.Subscribe(_ => Console.WriteLine("Bye!"));
也看看at this question。
我是 ReactiveUI 的新手,目前对它很满意。 但我有一个问题:How to handle windows event/message the ReactiveUI way?
在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的作者并不强烈反对code behind代码(可能我记错了),那么建议的方法是什么?
有一个单独的 Nuget 包 ReactiveUI Events, which contains helpers (extension methods) exposing events as IObservables
which you can use inside views. It is described in the docs。
基本上,您在视图中隐藏的代码将包含与此类似的内容:
this.Events().Closing
.Subscribe(_ => Console.WriteLine("Bye!"));
也看看at this question。