0

私は C# のイベントをよく知らないので、インターネットで見つけたいくつかのコードを理解するのに苦労しています

ビュー ファイルのコード ビハインド内には、次のメソッドがあります。

public void SavingMesBoxClosedHandler(object sender, object args)

DisplayMessageBoxクラスは FrameworkElement から派生し、次のイベントを定義します

    public delegate void MessageBoxClosedHandler(object sender, object args);
    public event MessageBoxClosedHandler DialogClosed;

ビューの xaml 内:

 <DisplayMessageBoxDemo:DisplayMessageBox 
       // some dependency properties here
        DialogClosed="SavingMesBoxClosedHandler"/>

DialogClosed はイベントですが、依存関係プロパティのみを使用できると思いました。名前のみを使用して、ビューのメソッドをDisplayMessageBoxクラスのイベントにマップする魔法はどれですか?

binding を使用する必要がないのはなぜですか?

viewmodel メソッドを DialogClose のイベント ハンドラとして割り当てる簡単な方法はありますか? 前回の質問で正しい用語を使用しなかった可能性があります。言い換えれば、上記で報告した例のようにビュー内ではなく、ビューモデル内でメソッドを呼び出したいということです。

4

1 に答える 1

0

XAML で依存関係プロパティだけを使用する必要はありません。通常のプロパティも同様に使用できます。ご指摘のとおり、依存関係プロパティは、DataBinding を使用するときに必要です。あなたが言及した場合、DataContextに応じて異なるハンドラーを使用しないため、DataBindingを使用する必要はないようです。MVVM パターンに固執し、イベント処理ロジックをビュー モデルに保持したい場合は、EventTrigger を使用できます: http://www.kunal-chowdhury.com/2010/11/using-eventtrigger-in-xaml-for -mvvm-no.html

于 2013-06-04T13:43:20.157 に答える