2016-07-20 55 views
1

我是ReactiveUI的新手,目前很滿意。 但我有一個問題:如何處理Windows事件/消息ReactiveUI的方式?如何處理windows事件(消息)ReactiveUI的方式?

在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的作者並不強烈反對代碼背後的代碼(可能我記錯了),那麼建議的方法是什麼呢?

回答

2

有一個單獨的Nuget包ReactiveUI Events,其中包含助手(擴展方法)公開事件爲IObservables,您可以使用內部視圖。它被描述爲in the docs

基本上,你在視圖代碼後面會包含一些與此類似:

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

看看at this question爲好。

+0

謝謝!我實際上使用[reactiveui-events.Net40](https://www.nuget.org/packages/reactiveui-events.Net40),因爲我使用的是.net 4.0。 – Felix