2016-04-15 28 views
1

私はコンボボックスを持っており、ContextMenuOpeningイベントにバインドするために、ビューモデルでコマンドが必要です。私はSystem.Windows.Interactivityを参照して、InvokeCommandActionを使ってみましたが、コマンドは呼び出していません。私はどこに間違っているのか誰にでも見える?InvokeCommandActionが呼び出されない

<ComboBox x:Name="comboBoxAssets" Grid.Column="0" VerticalAlignment="Top" Margin="928,62,0,0" Height="25" 
      ItemsSource="{Binding Source={StaticResource SortedAssets}}" 
      SelectedItem="{Binding Path=Assets, UpdateSourceTrigger=PropertyChanged}" 
      Style="{StaticResource ComboBoxDefault}" HorizontalAlignment="Left" Width="212" > 

    <i:Interaction.Triggers> 
     <i:EventTrigger EventName="ContextMenuOpening">  

      <i:InvokeCommandAction Command="{Binding ContextMenuOpeningCommand, Mode=OneWay}" /> 

     </i:EventTrigger> 
    </i:Interaction.Triggers> 
</ComboBox> 

のViewModel:

public ICommand ContextMenuOpeningCommand 
{ 
    get 
    { 
     if (_contextMenuOpeningCommand == null) 
     { 
      _contextMenuOpeningCommand = new RelayCommand<object>(param => this.ContextMenuOpening(), 
       null); 
     } 

     return _contextMenuOpeningCommand; 
    } 
} 

public void ContextMenuOpening() 
{ 
    System.Windows.MessageBox.Show("test", "test"); 
} 

private ICommand _contextMenuOpeningCommand; 
+1

別のイベントを試しましたか?多分、DropDownOpenedコマンドがヒットするかどうかを調べる。私はそれを試して、それはここで働く、唯一の違いは私がDelegateCommandを使用していますが、これは問題ではありません。 – adminSoftDK

+0

はい!それでおしまい。ご助力ありがとうございます。これを答えとして追加すると、私はそれを喜んでマークします。 – fyodorfranz

答えて

1

コマンドがヒットしますかどうかを確認するためにDropDownOpenedをしてみてください。私はそれを試して、それはここで動作します。これが役に立ちますようお願いいたします:)

関連する問題