私はこの質問の人がやりたかったことと同じようなことをしようとしています。
そこで提案されている回避策よりも、これを行うためのよりエレガントな方法はありますか?
(最後の手段として)これを行うためのより良いサポートを持つ別の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
「ディスパッチャの処理は中断されましたが、メッセージはまだ処理中です。」というメッセージが表示され続けます。
何か案は?