我正在尝试做类似于这个问题中的人想做的事情。
有没有比那里建议的解决方法更优雅的方法来做到这一点?
(作为最后的手段)是否有不同的 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);
}
然后,我会将要触发的命令绑定到 ItemCollapsedCommand 依赖属性。然而,即使这样也行不通。
我不断收到一条InvalidOperationException
消息:“调度程序处理已暂停,但消息仍在处理中。”
有任何想法吗?