2016-07-20 5 views
1

私はReactiveUIを初めて使っていて、現在はそれに満足しています。 しかし、私は1つの質問があります:どのようにWindowsイベント/メッセージReactiveUIの方法を処理するには? mvvmlightでどのようにWindowsイベント(メッセージ)ReactiveUIの方法を処理するには?

、それはこのようなものだ:

<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

ありがとうございます!私は実際に.net 4.0を使用しているので代わりに[reactui-events.Net40](https://www.nuget.org/packages/reactiveui-events.Net40)を使用します。 – Felix

関連する問題