2012-01-23 8 views
0

私はMyViewModel型のObservableCollectionへのバインディングを持つListBoxを持っています。アイテムテンプレートはHyperLinkBut​​tonです。 MyViewModelをHyperLinkBut​​ton.Clickイベントに渡す方法はありますか?このイベントには、オブジェクト送信者とRoutedEventArgsの2つのパラメータがあります。送信者はHyperLinkBut​​ton型ですが、私はBindingオブジェクトへの参照を一切持っていません! ClickイベントにパラメータとしてMyViewModelを追加する方法はありますか?hyperlinkbutton - clickイベントでBindingオブジェクトを取得しますか?

おかげ

+1

文脈がなければ私はあなたがしたいことを確信することはできませんが、私が読んだところでは、ハイパーリンクの[Command](http://msdn.microsoft.com/en-us/) /library/system.windows.controls.primitives.buttonbase.command(v=vs.95).aspx)プロパティ。コマンドを使用すると、イベントハンドラを経由するよりも適切な方法でビューモデルにアクセスできるようになります。 – madd0

+0

madd0;コマンドの使用についてプロジェクトが大きくて複雑なものなら、私はその道を行くだろう。 –

+0

okですが、コマンドを使用するためにはなぜ大きなプロジェクトが必要ですか?イベントを使用するのではなく、それらを使用するのに少しでも努力が必要です。 – madd0

答えて

3

プロパティCommandParameterは、仕事をする必要があります。

<HyperLinkButton Click="ClickEvent" CommandParameter={Binding} /> 

これは、バインドされている現在のMyViewModelを使用するため、機能します。次に、イベント引数でアクセスするだけです。別の方法もあります。 HyperLinkBut​​tonである送信者からDataContextを取得できます。 MyViewModelインスタンスに移動します。これが役に立ちますようにお願いします。

編集:あなたのHyperLinkBut​​tonにオブジェクト参照がありません。あなたがそれから必要とするdatacontextではないと確信していますか?

+1

ありがとうRikkos! DataContextをつかむことはやりました。 –

関連する問題