1
У меня есть combobox, и мне нужна команда в моей модели просмотра для привязки к ее событию 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