問題タブ [routed-commands]
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 - ListView.Selection を RoutedCommand に変更
私は、WPF を使用して MVVM デザイン パターンで作業しています。にContextMenu
いくつかのアイテムを含む がありListView
ます。で選択したアイテムの数に基づいて、ListView
特定の を有効/無効にしたいと考えていMenuItem
ます。SelectionChanged
選択したアイテムの数とともにイベントをListView
ビュー モデルに直接ルーティングする方法はありますか。IsEnabled
その場合、VM で依存関係プロパティを非常に簡単に定義できます。これを処理するためにコード ビハインドを回避しようとしています。
ケリー
.net - RoutedCommand と RoutedUICommand の違いは何ですか?
それについて読んでみましたが、RoutedCommand と RoutedUICommand の違いを十分に説明しているドキュメントを見つけることができませんでした。
wpf - コントロール間のMVVMコマンドルーティング
現在、別のビュー(および関連するViewModel)であるViewModelのプロパティにバインドされているボタンとContentPresenterを備えたメインビューがあります。ContentPresenterにロードされたコントロールで宣言されたハンドラーからコマンドをルーティングする方法はありますか?これは、メインビューにツールバーが含まれ、コンテンツプレゼンターにコンテンツが含まれているためです。MicrosoftMVVMテンプレートと生成されたDelegateCommandクラスを使用しています。
c# - コマンドをプログラムで起動する方法
ICommand
コードから起動したい(実行を開始したい)があります。どうすればいいですか?
wpf - RoutedCommandが呼び出されたときにXamlyはストーリーボードを開始しますか?
ICommandがXAMLで実行されたときにストーリーボードを開始する方法はありますか?
wpf - 要素がビジュアル ツリーから削除された後、どのように commandBinding の CanExecute を起動できますか?
ここで関連する質問があります。ここでは、コマンド バインディングを使用したユーザー コントロールがあります。ユーザー コントロールはビジュアル ツリーから削除されていますが、canExecute はまだ起動しています。コマンディング モデルについての私の理解では、ルーティング イベントのようにバブリングしてトンネリングするというものでした。では、コマンド バインディングがアタッチされた要素がビジュアル ツリーに存在しなくなったら、どのように CanExecute を起動できるでしょうか。
wpf - WPF: コンテキスト メニューのメニュー項目のテキストを変更する
私はContextMenu
次のようにXAMLに持っていますMenuItem
:
Header
のをMenuItem
どうにか変えて のText
を変えたいRoutedCommand
。そして、私はそれをしたいと思いCanExecuteRoutedEventHanlder
ます。を変更しただけRoutedCommand
Text
でMenuItem
は更新されません。これCanExecuteRoutedEventHanlder
は、実行時にメニューが既に作成されているためだと思います。
Command
基本的に、からへの更新を強制する方法が必要ですMenuItem.
wpf - WPF - 組み込みのコマンド メカニズムを拡張する (または並行して動作させる) にはどうすればよいですか?
これがばかげた質問でしたらすみません。WPF コマンド インフラストラクチャに関する多数の記事を読みましたが、これまで以上に混乱しています。
組み込みコマンドを使用して、(たとえば) 標準の切り取り/コピー/貼り付け機能をフォーカスされたテキスト ボックスに適用するツールバーを実装できることを理解しています。
しかし、このパターンを拡張して、単一のツールバーを使用して、さまざまなコントロールに対して同様の (ただし同一ではない) 操作を呼び出すことができるようにしたいと考えています。たとえば、切り取り、コピー、貼り付け操作もサポートする、ListBox から派生したカスタム コントロールを作成する場合があります。ListBox でのコピー操作の実行は、TextBox の場合とは異なる方法でコーディングされますが、同じツールバー ボタンから呼び出されます。
だから、私の質問は次のとおりです。
[1] 上記の例のようにコマンドを実行できるようにするには、カスタム コントロールに何を実装する必要がありますか? 具体的には、フォーカス時にツールバーから検出できるようにする必要があります。
[2] フォーカスされているコントロールの種類に応じて、1 つのボタンでさまざまなコマンドを呼び出せるようにするには、ツールバーでどのマークアップが必要ですか?
あなたが提供できるアドバイスに感謝します。
ティム
c# - この特定の WPF 状況で MVVM とコマンドを適用するにはどうすればよいですか?
WPF アプリの MVVM パターンとコマンドに問題があります。問題はMVVMパターンではなく、私のGUIで起こっていることです。状況を説明します:
私のアプリは、いくつかのファイルに DoStuff できます。function を持つクラスがありますDoStuff(int limit)
。ユーザー インターフェイスには次の項目があります。
- A
Button
DoStuffBtn
解析を開始します。 - A
TextBox
LimitTxt
制限を埋めること。 - A
CheckBox
LimitChk
制限を有効または無効にします。
「チェックを外す」LimitChk
場合は、LimitTxt.Text = ""
とLimitTxt.IsEnabled = false
. 「チェック」LimitChk
すると、LimitTxt.IsEnabled = false
再び、何かを入力するまでテキストは空のままになります。
私は WPF と MVVM のコマンドに関する多くのチュートリアルを読みましたが、自分のケースをその型に注ぎ込むことができないようです。私が示した例は、実際には私の UI のほんの一部にすぎませんが、これもうまくできないようです。
次のような質問に出くわします。
- 2 つ(有効化と無効化) または 1 つだけ (切り替え)
Commands
が必要ですか?LimitChk
int
toをバインドする場合LimitTxt
、空にして無効にするとどうなりますか?- が押され
DoStuff(Int32.Parse(LimitTxt.Text))
たときに使用するのはきれいな方法ですか?DoStuffBtn
- で 2 つのコマンドを使用する
LimitChk
と、有効かどうかを判断するのCanExecute()
機能はどうなりますか?ICommand
LimitChk
したがって、主な質問は次のとおりです。私が説明した状況は、WPF でコマンドを使用する適切なパターンにどのように適合しますか?
私が見たWPF、コマンド、およびMVVMに関するいくつかのリンク:
- http://www.devx.com/DevX/Article/37893/0/page/1
- http://msdn.microsoft.com/en-us/magazine/cc785480.aspx?pr=ブログ
- http://jmorrill.hjtcentral.com/Home/tabid/428/EntryId/432/MVVM-for-Tarded-Folks-Like-Me-or-MVVM-and-What-it-Means-to-Me.aspx
- http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
これまでのところ、私が理解しているのは、UI から可能な限り遠ざけなければならないということです。UIに影響を与えるUIのようなものでさえ。つまり、チェックを外すとLimitChk
無効になりますLimitText
。それでも、UI 関連の情報と、実際に行わなければならない実際の作業に関係するアクションとの間の違いを維持する必要があると思います。
wpf - wpf でのマルチキー ジェスチャ
とRoutedUICommand
呼ばれるものがありComment Selection
ます。VIsual Studio と同じように、このコマンドに入力ジェスチャを追加する必要があります。( Ctrl+K、Ctrl+C)。これどうやってするの?助けてください。(VS 機能を念頭に置いてください)。
よろしく、ジャワハル