Я пытаюсь сделать что-то похожее на то, что хотел сделать человек в этом вопросе.
Есть ли любой , более элегантный, способ сделать это, чем предложенный там обходной путь?
(В крайнем случае) Есть ли другая структура mvvm,будет иметь лучшую поддержку для этого?
Сейчас я пытаюсь создать пользовательский элемент управления, который наследует от дерева, например:
public ModdedTreeView()
{
this.AddHandler(TreeViewItem.CollapsedEvent, new RoutedEventHandler(ItemCollapsed));
}
public RelayCommand<RoutedEventArgs> ItemCollapsedCommand
{
get { return (RelayCommand<RoutedEventArgs>)GetValue(ItemCollapsedCommandProperty); }
set { SetValue(ItemCollapsedCommandProperty, value); }
}
// Using a DependencyProperty as the backing store for ItemCollapsedCommand. This enables animation, styling, binding, etc...
public static readonly DependencyProperty ItemCollapsedCommandProperty =
DependencyProperty.Register("ItemCollapsedCommand", typeof(RelayCommand<RoutedEventArgs>), typeof(ModdedTreeView), new UIPropertyMetadata(null));
protected void ItemCollapsed(object sender, RoutedEventArgs e)
{
if (ItemCollapsedCommand != null)
ItemCollapsedCommand.Execute(e);
}
Затем я бы связал команду Iхотите запустить свойство зависимости ItemCollapsedCommand.Однако даже это не работает.
Я продолжаю получать InvalidOperationException
: «Обработка диспетчера приостановлена, но сообщения все еще обрабатываются».
Есть идеи?