使用带TabItem的命令
我想在选择TabControl的TabItem时调用Command。
有没有办法在不破坏MVVM模式的情况下完成它?
使用AttachedCommand Behavior ,它允许您将Command绑定到WPF事件
当然,如果您正在使用MVVM设计模式并绑定SelectedItem
或SelectedIndex
,您还可以在PropertyChanged
事件中运行该命令
void MyViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == "SelectedIndex") RunTabChangedLogic(); }
可以一起使用以下类来完成:
-
System.Windows.Interactivity
命名空间(System.Windows.Interactivity
程序集)中的EventTrigger
类。 - 来自
GalaSoft.MvvmLight.Command
命名空间的EventToCommand
类( MVVM Light Toolkit程序集,例如,GalaSoft.MvvmLight.Extras.WPF4
):
XAML:
... ... ...
在ViewModel
构造函数中创建命令的实例:
TabSelectionChangedCommand = new RelayCommand(args => { // Command action. });
这是我没有GalaSoft.MvvmLight
或附加命令行为的方式
... // In my ViewModel public ICommand MyCommand { get { return new RelayCommand((object parameters) => { // Do stuff... }); } }