У меня есть приложение WPF, у которого есть главное окно, состоящее из нескольких пользовательских элементов управления UserControl, помещенных в контейнеры AvalonDock.
Я хочу, чтобы некоторые функции UserControls были доступны с панели инструментов и меню в главном окне.У меня есть команда, определенная следующим образом:
public ICommand UnfoldAllCommand
{
get
{
if (this.unfoldAllCommand == null)
{
this.unfoldAllCommand = new RelayCommand(param => this.UnfoldAll());
}
return unfoldAllCommand;
}
}
Теперь у меня есть этот UserControl, определенный в главном окне XAML под именем "editor"
<local:Editor x:Name="editor" />
Этот элемент управления такжеОбнародован через свойство Edtor главного окна (это собственный DataContext).
public Editor Editor { get { return this.editor; } }
Меню находится в главном окне XAML.Это определение определения одного MenuItem, который запускает команду UnoldAll UserControl, работает отлично.
<MenuItem Header="Unfold All" Command="{Binding UnfoldAllCommand, ElementName=editor}" InputGestureText="Ctrl+U" />
Тем не менее, это определение, возможно, красивее, но не работает (MenuItem кликабелен, но не запускаетРазвернуть все методы):
<MenuItem Header="Unfold All" Command="{Binding Editor.UnfoldAllCommand}" InputGestureText="Ctrl+U" />
Почему?