問題タブ [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.

0 投票する
2 に答える
5845 参照

wpf - WPFカスタムICommandの実装とCanExecuteChangedイベント

WPF UIでは、次のコードを介してxamlで参照するRoutedCommandsを使用します。

ViewModelクラスへのこの静的リンクは好きではありません。これは、カスタムICommand実装を作成し、次のような構文を使用するほど良くないと思います。

作成した後、私が行ったことの1つの大きな欠点に気付きました。RoutedCommandsはCommandManagerを利用し、(私には完全に不透明な方法で)CommandManager.RequerySuggestedイベントを起動して、CanExecuteメソッドが自動的に再クエリされるようにします。私のカスタム実装に関しては、CanExecuteは起動時に一度だけ起動され、その後は二度と起動されません。

誰かがこれに対するエレガントな解決策を持っていますか?

0 投票する
7 に答える
17341 参照

c# - C#/WPF: KeyBinding がコマンドをトリガーしない

私は宣言しました<InputBindings>

テスト目的で、これらのコマンドにバインドされたボタンも追加しました

貼り付けボタンが有効になっているときに Ctrl-V を押しても何も起こらないことに気付きました。Ctrl-C が機能するようです。そのために、リストボックスの項目が選択されていますが、違いがあるかどうかはわかりません。PasteImageCommandなぜ私がトリガーしないのか誰にも分かりますか?

私は.NET 4を使用しています

アップデート

より完全なコード スニペット

アップデート

KeyBindingsMainWindow にを配置する必要があることがわかりましたが、コマンドは にありViewModelます。ShellViewShellViewModel

0 投票する
2 に答える
78 参照

wpf - クラス プロジェクトの ViewModel

MVVM パターンに基づく WPF アプリケーションを構築しています。

後で、同じタイプの Silverlight アプリケーションと Web アプリケーションを構築します。

3 つの UI:s すべてで ViewModels を使用したいので、vm:s をクラス ライブラリに移動することを考えていましたが、ICommands を失いました。これを回避する簡単な方法はありますか?

この問題をどのように解決しますか?

よろしく、ピーター・ラーソン!

0 投票する
1 に答える
321 参照

c# - 「通常の」ICommand の使用

RelayCommandは MVVM Foundation を使用していましたが、現在、「通常の」を使用しようとすると、ICommand実際に使用する方法がわかりません。特に、メインクラスで使用される変数に「バインド」します。メイン クラスのビュー モデルでOkCommandイベント () を発生させるを作成したいだけです。RequestCloseまた、すべてのバインディングが有効な場合にのみ有効にしたいと考えています。検証はValidationRule、以下のようなものを使用して実装されます

0 投票する
1 に答える
1561 参照

wpf - WPF ContextMenu ディクショナリ> データバインディング

次のクラス定義を想定します。

したがって、この ProvidersDictionary プロパティは、次のようにウィンドウ コンテキスト メニューにバインドされます。

問題は、DataProvider メニュー項目の ICommand データ バインディングを作成し、コマンドの Execute メソッド内でデータ型 (列挙型) とデータ プロバイダー (IDataProvider インターフェイス) を取得する方法です。

更新 次のようなMenuItemsにバインドするコマンドクラスが必要です。

MainViewModel は、このコマンド クラスのインスタンスをプロパティとして公開します。

0 投票する
2 に答える
1406 参照

wpf - 無効になっているボタンの画像の彩度を下げる方法はありますか?

無効になっているボタンの画像の彩度を下げる方法はありますか? 例えば。ICommand.CanExecute = false? または、別の画像とスタイル/トリガーを使用する必要がありますか

0 投票する
2 に答える
5446 参照

wpf - WPF/MVVM:UserControlの背後にあるViewModelがまだ初期化されていない場合、ボタンの状態を無効にしますか?

ListBox と 3 つのボタンを持つ DocumentListView.Xaml があります。

その UserControl の背後には、3 つのボタンと 3 つの RelayCommand にバインドされた Command プロパティを持つ DocumentListViewModel があります。

AdministrationController、BillingController、ReportController のような 3 つのコントローラーがあります。

すべての Controller には、 Customer 1 : N Order 1: N Document のような ObservableCollections があり、他の Controller と同じです。

あるコントローラーでは、特別な束縛状況があります。DocumentListViewModel が OrderViewModel のような親 ViewModel によって初期化されていない場合 (注文がロードされていないか存在しないため)、UserControl には有効な 3 つのボタンがあります。ユーザーは 3 つのボタンを押すことができ、何も起こりませんが、それでも非常に混乱し、何よりもユーザー インターフェイスの一貫性が失われています。

ボタンのコマンドをデフォルトで「無効」に設定するにはどうすればよいですか?

Buttons IsEnabled プロパティを false に設定しても、ボタンは永久に無効な状態のままになるため、役に立ちません。No CanExecute TRUE は IsEnabled = true に設定します。

そして、別のプロパティ IsButtonEnabled を導入したくありません...それはばかげています。なぜなら、ボタンロジックの背後に世界の winform と wpf の両方があるからです... ICommand で十分なはずです。

0 投票する
1 に答える
909 参照

.net - Datagrid の CommitEditCommand をビュー モデルの ICommand にバインドすることは可能ですか?

私は似たようなことをしようとしています;

DeleteCommand は、ビュー モデルによって公開される ICommand です。

次のようなことができると思ったのですが、そうではないようです。

基本的に、ビューモデルでイベントの発生をキャプチャして、それに基づいて行動しようとしています。ここで何が欠けていますか?

0 投票する
3 に答える
6308 参照

wpf - ICommandを使用するボタンは無効になりませんか?

wpf-mvvmアプリケーションにボタンコントロールがあります。

プロパティ(viewmodelで定義)を使用してICommand、ボタンクリックイベントをviewmodelにバインドします。

->実行と実装canexecute用のパラメーターがありますICommandRelayCommand)。

偽の場合でもCanExecute...ボタンが無効になっていない...ボタンの内容が画像の場合

ただし、ボタンの内容がテキストの場合、有効化/無効化は正常に機能します。

0 投票する
2 に答える
2059 参照

silverlight - Silverlight MVVM: (オブジェクトの送信者、RoutedEventArgs e) はどこに行ったのですか?

ビューモデルでコマンドを使用してイベントを処理しています。たとえば、次のようなボタン クリック イベントを処理しています。

XAML

ビューモデル コード

コマンドを接続する Viewmodel コンストラクター コード

ボタンのクリックで呼び出されるビューモデルの実際のメソッド

これは機能します。だから私の質問は:

  • これは正しい方法ですか?
  • (オブジェクト送信者、RoutedEventArgs e) パラメータをビューモデルに伝播する方法はありますか?
  • これがボタンのクリックではなく、リストボックスの選択変更イベントであるとします。オブジェクト送信者、SelectionChangedEventArgs eパラメータなしで、選択した項目の値を取得するにはどうすればよいですか?