問題タブ [delegatecommand]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - WPF Interaction.Behaviors/EventTrigger はどのように WPF の UI を更新しますか?
カスタム UserControl を持つ WPF アプリケーションがあり、Microsoft.Xaml.Behaviors ライブラリの単純な EventTrigger を使用してマウス イベントに応答したいと考えています。ViewModel クラスの SelectedProperty が変更されたことを反映して、表示または非表示にする必要があるキャンバスもあります。私の編集コマンドが発生し、マウスの右ボタンがクリックされたときに ViewModel クラスで SelectedProperty を false に更新する責任があります。
これが私のデリゲートコマンドクラスです:
ICommand と SelectedProperty を使用した ViewModel クラスは次のとおりです。
編集コマンドを使用するユーザー コントロール コードを次に示します。
また、プロパティを使用して SelectedProperty 状態に基づいてキャンバスを非表示および表示する別のユーザー コントロール:
マウスの右ボタンをクリックすると、EditNodeHandler が実行され、パラメーターは正しい ViewModel インスタンス (選択 == true) になります。Visual Studio のハンドラー コードにブレークポイントとブレークを配置することもできます。ただし、ハンドラーで Selected プロパティが false に設定されている場合、キャンバスは非表示になりません。Snoop デバッガーを使用して DataContext を確認すると、手動で SelectedProperty を false に設定でき、ユーザー インターフェイスは期待どおりに Canvas を非表示にします。
では、コマンド ハンドラーがユーザー インターフェイスを期待どおりに更新しないのはなぜでしょうか。