Скажем, у меня есть элемент управления табуляции, который отображает данные различных типов, например EditorTabViewModel
, PreviewTabViewModel
, оба наследуются от TabViewModel
.Реализация аналогична учебнику на MSDN
. Я хочу включить кнопки в зависимости от активной вкладки, будь то EditorTabViewModel
или PreviewTabViewModel
.Как мне этого добиться?
ОБНОВЛЕНИЕ
public ICommand EditorCommand
{
get
{
if (_editorCommand == null) {
_editorCommand = new RelayCommand(() =>
{
MessageBox.Show("Editor");
}, () =>
{
var enabled = true;
var viewSource = CollectionViewSource.GetDefaultView(Tabs);
viewSource.CurrentChanged += (o, e) =>
{
if (viewSource.CurrentItem is EditorTabViewModel)
{
enabled = false;
}
};
return enabled;
});
}
return _editorCommand;
}
}
ОБНОВЛЕНИЕ 2
public ICommand PreviewCommand
{
get
{
if (_previewCommand == null) {
_previewCommand = new RelayCommand(() =>
{
MessageBox.Show("Preview");
}, () =>
{
var viewSource = CollectionViewSource.GetDefaultView(Tabs);
var enabled = viewSource.CurrentItem is EditorTabViewModel;
viewSource.CurrentChanged += (o, e) =>
{
CommandManager.InvalidateRequerySuggested();
};
return enabled;
});
}
return _previewCommand;
}
}