1

別のコントロール・テンプレートにあり、MVVMライト・リレー・コマンドを使用しているコントロール・テンプレートのイベント・トリガー・イベントが発生しました。リレー・コマンドでのコントロール・テンプレート・イベント

ここに該当します: main_controlはgeneric.xamlスタイルでテンプレート化されています。 sub_controlも同じようにテンプレート化されています。

MAIN_CONTROLは、私はXAMLでMAIN_CONTROLとの見解を持っているMVVMライトで実装私のSLプロジェクトでのObservableCollection今

にいくつかのsub_controlインスタンスを持っています。 このビューは、sub_controlで埋め込むビューモデルにバインドされています。

私が達成しようとしているのは、view_modelでクリックされたsub_controlのインスタンスを取り戻すことです。

ありがとうございました。

+0

を設定します。作りますDataContextとVMとの関係が問題を解決する鍵であるためです。 – Youngjae

答えて

0

次のものが正しいことを確認します

sub_controlのDataContextのを表すオブジェクトのプロパティとしてRelayCommandを公開します。これはあなたのViewModelかもしれません。より多くの場合、コレクションにバインドするエンティティクラスのインスタンスです。必ず公開し、getメソッドとsetメソッドを提供してください。

public RelayCommand MyCommand { get; set; } 

コマンドは新しいインスタンスに設定されていることを確認

MyCommand = new RelayCommand(() => 
    { 
    // Do something 
    }); 

が最後にあなたのコードを添付するのが良いでしょう、あなたのビューに結合

xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 
    xmlns:command="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.SL4" 
    ... 
    <Button Content="Click Me"> 
    <i:Interaction.Triggers> 
     <i:EventTrigger EventName="Click"> 
     <command:EventToCommand Command="{Binding MyCommand}"/> 
     </i:EventTrigger> 
    </i:Interaction.Triggers> 
    </Button> 
+0

この回答のThx。私はそれを試みたが動作しません。問題は、ビューモデルにバックアップされたsub_controlのインスタンスをクリックすることです。私のsub_controlは、私はheritできないuiコントロール(円弧)をラップします。 – SomFred

+0

sub_controlのデータコンテキストをチェックします。これがデータバインドリストコントロールなどにある場合、データコンテキストはオブジェクトである可能性がありますか?その場合は、そのオブジェクトにRelayCommandプロパティを追加するか、コントロールテンプレートのデータコンテキストをビューモデルのインスタンスに明示的に設定する必要があります。誰かがコメントしたように - コード例がおそらくここで助けになるでしょう。 –

関連する問題