問題タブ [icommand]
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.
c# - WPF:ICommandにバインドされたTreeViewItem
WPFで最初のMVVMアプリケーションを作成するのに忙しいです。
基本的に私が抱えている問題は、WPFウィンドウに配置したTreeView(System.Windows.Controls.TreeView)があり、CommandViewModelアイテムのReadOnlyCollectionにバインドすることを決定したことです。これらのアイテムは、 DisplayString、Tag、およびRelayCommand。
これでXAMLに、TreeViewがあり、ReadOnlyCollectionをこれに正常にバインドしました。私はこれを見ることができ、UIですべてがうまく見えます。
ここでの問題は、RelayCommandをTreeViewItemのコマンドにバインドする必要があることですが、TreeViewItemにコマンドがないことがわかります。これにより、IsSelectedプロパティで、またはTreeView_SelectedItemChangedメソッドの背後にあるコードでそれを実行するように強制されますか?それともWPFでこれを魔法のように実行する方法がありますか?
これは私が持っているコードです:
そして理想的には私はただ行きたいです:
誰かが私が持っているRelayCommandインフラストラクチャを使用できるようにするソリューションを持っていますか?
みんなありがとう、大いに感謝します!
リチャード
wpf - Josh SmithによるRelayCommandの実装に欠陥がありますか?
Josh Smithの記事「Model-View-ViewModelデザインパターンを使用したWPFアプリ」、具体的にはRelayCommand
(図3)の実装例を検討してください。(この質問については、記事全体を読む必要はありません。)
一般的に、実装は優れていると思いますが、のイベントCanExecuteChanged
へのサブスクリプションの委任について質問があります。州のドキュメント:CommandManager
RequerySuggested
RequerySuggested
このイベントは静的であるため、弱参照としてのみハンドラーを保持します。このイベントをリッスンするオブジェクトは、ガベージコレクションを回避するために、イベントハンドラーへの強力な参照を保持する必要があります。これは、プライベートフィールドを用意し、このイベントにアタッチする前または後にハンドラーを値として割り当てることで実現できます。
しかし、のサンプル実装はRelayCommand
、サブスクライブされたハンドラーに対してそのようなものを維持していません。
- これにより、弱参照が
RelayCommand
クライアントにリークされ、ユーザーがライブ参照RelayCommand
の実装を理解してCanExecuteChanged
維持する必要がありますか? もしそうなら、例えば、加入者
/li>RelayCommand
の潜在的な時期尚早のGCを軽減するために、の実装を次のようなものに変更することは理にかなっていますか?CanExecuteChanged
silverlight - Silverlight ボタン クリックを Prism DelegateCommand にバインドできないのはなぜですか
Silverlight 3 と Prism に簡単なテスト アプリがあり、ビュー モデルで作成した簡単なコマンドにボタン Click をバインドしようとしています。これは、コマンドを機能させるためのテストアプリです。実行すると、ビューがコマンドを見つけられないことを示すバインド エラーが表示されます。
System.Windows.Data エラー: BindingExpression パス エラー: 'MyCommand' プロパティが 'Bind1.ShellViewModel' 'Bind1.ShellViewModel' に見つかりません (HashCode=8628710)。BindingExpression: Path='MyCommand' DataItem='Bind1.ShellViewModel' (HashCode=8628710); ターゲット要素は 'System.Windows.Controls.Button' (Name='') です。ターゲット プロパティは 'Command' (タイプ 'System.Windows.Input.ICommand') です。
ここに私のシェルビューがあります:
ビューのコンストラクターで、ViewModel をインスタンス化します (コンテナーの使用についてはまだ心配していません...)。
ここに私のビューモデルがあります:
ボタン ラベル バインディングは正常に機能するため、ビューは ViewModel を正常に検出しています。
MyCommand が見つからないのはなぜですか? それは私を怒らせています-私は明らかに単純な非常に間違ったことをしています...
どうもありがとう。
c# - MVP の icommand
MVP (モデル - ビュー - プレゼンター) の ICommand 実装は、プレゼンターまたは独自のクラスに属しますか?
wpf - ボタンに対する WPF ICommand
ボタンの 1 つにカスタム IComand クラスを実装しました。ボタンはページ 'MyPage.xaml' に配置されますが、そのカスタム ICommand クラスは、MyPage コード ビハインドではなく、別のクラスに配置されます。次に、XAML からボタンをそのカスタム コマンド クラスにバインドし、次のようにします。
マイページ.xaml:
およびカスタム コマンド ボタン クラス:
私の問題は、ボタンの Execute および CanExecute メソッドが別のクラスにあり、ボタンが配置されているコードの背後にある MyPage.xaml をどのように言うかです。これらのメソッドが XAML ページの RemoveAllCommand クラスにあると言う方法。
また、ボタンでクリック マウス イベントが発生したときにこのコマンドを起動したいので、入力バインディングを行いますが、正しいですか?
ありがとう
wpf - WPF ViewModel コマンドの CanExecute の問題
ビュー モデルのコンテキスト メニュー コマンドに問題があります。
ビュー モデル内の各コマンドに ICommand インターフェイスを実装し、ビュー (MainWindow) のリソース内に ContextMenu を作成し、MVVMToolkit の CommandReference を使用して現在の DataContext (ViewModel) コマンドにアクセスします。
アプリケーションをデバッグすると、ウィンドウの作成時を除いてコマンドの CanExecute メソッドが呼び出されていないように見えるため、Context MenuItems が期待どおりに有効化または無効化されていません。
実際のアプリケーションを示す簡単なサンプル (ここに添付) を作成し、以下に要約します。どんな助けでも大歓迎です!
これはビューモデルです
DisplayValueCommand は次のとおりです。
最後に、ビューは Xaml で定義されます。
wpf - ユーザーコントロール内のコントロールを再利用する
UserControlUserControl1とUserControl1内のボタンがあります。そして、ボタンのICommandプロパティを持つUserControl1ViewModelがあります。このコマンドを使用して、VMの外部(他のVMまたはメインウィンドウのVMから)のメソッドを呼び出す必要があります。このためのベストプラクティスは何ですか?
mvvm - mvvmを使用してSilverlight 4のボタンにコマンドをバインドする
というユーザーコントロールがありますHomePage.xaml
。ページのコンストラクターのコード ビハインド ファイルに (MVVM パターンを使用して) モデル インスタンスを作成しています。
呼び出さHomePage.xaml
れたコマンドにバインドし、データグリッドにデータを入力したいボタンがあります。データグリッドにデータをバインドするために使用する があります。MainViewModel
GetData()
MainViewModel
ObservableCollection
コマンドをバインドせずにデータグリッドにデータを入力すると、正常に機能します。
ボタンを次のようにバインドしています。
MVVM を使用してコマンドをバインドするにはどうすればよいですか?
c# - ArcObjects のコマンド ボタンからドロップダウンの選択を取得するにはどうすればよいですか?
ArcMap の同じツールバーにドロップダウンとコマンド ボタンがあります。コマンド ボタンを使用しているときに、ドロップダウンの選択にアクセスできないようです。
ユーザーが選択したものを確認できるように、ドロップダウンを見つけるにはどうすればよいですか?
ありがとう
スコット
wpf - プレゼンターでWpfユーザーコントロールのボタンがICommandを起動しない
私は WPF が初めてで、WPF 複合アプリケーションを学習しようとしています。
1つのラベルと1つのボタンがあるモジュールであるユーザーコントロールを取得しました。
今、次のようなボタンの Command プロパティを使用しようとしています
私が持っているプレゼンターで
問題は、ボタンをクリックしても GetCustomerName() メソッドが実行されないことです