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;
別のイベントを試しましたか?多分、DropDownOpenedコマンドがヒットするかどうかを調べる。私はそれを試して、それはここで働く、唯一の違いは私がDelegateCommandを使用していますが、これは問題ではありません。 – adminSoftDK
はい!それでおしまい。ご助力ありがとうございます。これを答えとして追加すると、私はそれを喜んでマークします。 – fyodorfranz