問題タブ [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.
wpf - WPFカスタムICommandの実装とCanExecuteChangedイベント
WPF UIでは、次のコードを介してxamlで参照するRoutedCommandsを使用します。
ViewModelクラスへのこの静的リンクは好きではありません。これは、カスタムICommand実装を作成し、次のような構文を使用するほど良くないと思います。
作成した後、私が行ったことの1つの大きな欠点に気付きました。RoutedCommandsはCommandManagerを利用し、(私には完全に不透明な方法で)CommandManager.RequerySuggestedイベントを起動して、CanExecuteメソッドが自動的に再クエリされるようにします。私のカスタム実装に関しては、CanExecuteは起動時に一度だけ起動され、その後は二度と起動されません。
誰かがこれに対するエレガントな解決策を持っていますか?
c# - C#/WPF: KeyBinding がコマンドをトリガーしない
私は宣言しました<InputBindings>
テスト目的で、これらのコマンドにバインドされたボタンも追加しました
貼り付けボタンが有効になっているときに Ctrl-V を押しても何も起こらないことに気付きました。Ctrl-C が機能するようです。そのために、リストボックスの項目が選択されていますが、違いがあるかどうかはわかりません。PasteImageCommand
なぜ私がトリガーしないのか誰にも分かりますか?
私は.NET 4を使用しています
アップデート
より完全なコード スニペット
アップデート
KeyBindings
MainWindow にを配置する必要があることがわかりましたが、コマンドは にありViewModel
ます。ShellView
ShellViewModel
wpf - クラス プロジェクトの ViewModel
MVVM パターンに基づく WPF アプリケーションを構築しています。
後で、同じタイプの Silverlight アプリケーションと Web アプリケーションを構築します。
3 つの UI:s すべてで ViewModels を使用したいので、vm:s をクラス ライブラリに移動することを考えていましたが、ICommands を失いました。これを回避する簡単な方法はありますか?
この問題をどのように解決しますか?
よろしく、ピーター・ラーソン!
c# - 「通常の」ICommand の使用
私RelayCommand
は MVVM Foundation を使用していましたが、現在、「通常の」を使用しようとすると、ICommand
実際に使用する方法がわかりません。特に、メインクラスで使用される変数に「バインド」します。メイン クラスのビュー モデルでOkCommand
イベント () を発生させるを作成したいだけです。RequestClose
また、すべてのバインディングが有効な場合にのみ有効にしたいと考えています。検証はValidationRule
、以下のようなものを使用して実装されます
wpf - WPF ContextMenu ディクショナリ> データバインディング
次のクラス定義を想定します。
したがって、この ProvidersDictionary プロパティは、次のようにウィンドウ コンテキスト メニューにバインドされます。
問題は、DataProvider メニュー項目の ICommand データ バインディングを作成し、コマンドの Execute メソッド内でデータ型 (列挙型) とデータ プロバイダー (IDataProvider インターフェイス) を取得する方法です。
更新 次のようなMenuItemsにバインドするコマンドクラスが必要です。
MainViewModel は、このコマンド クラスのインスタンスをプロパティとして公開します。
wpf - 無効になっているボタンの画像の彩度を下げる方法はありますか?
無効になっているボタンの画像の彩度を下げる方法はありますか? 例えば。ICommand.CanExecute = false
? または、別の画像とスタイル/トリガーを使用する必要がありますか
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 で十分なはずです。
.net - Datagrid の CommitEditCommand をビュー モデルの ICommand にバインドすることは可能ですか?
私は似たようなことをしようとしています;
DeleteCommand は、ビュー モデルによって公開される ICommand です。
次のようなことができると思ったのですが、そうではないようです。
基本的に、ビューモデルでイベントの発生をキャプチャして、それに基づいて行動しようとしています。ここで何が欠けていますか?
wpf - ICommandを使用するボタンは無効になりませんか?
wpf-mvvmアプリケーションにボタンコントロールがあります。
プロパティ(viewmodelで定義)を使用してICommand
、ボタンクリックイベントをviewmodelにバインドします。
->実行と実装canexecute
用のパラメーターがありますICommand
(RelayCommand
)。
偽の場合でもCanExecute
...ボタンが無効になっていない...ボタンの内容が画像の場合
ただし、ボタンの内容がテキストの場合、有効化/無効化は正常に機能します。
silverlight - Silverlight MVVM: (オブジェクトの送信者、RoutedEventArgs e) はどこに行ったのですか?
ビューモデルでコマンドを使用してイベントを処理しています。たとえば、次のようなボタン クリック イベントを処理しています。
XAML
ビューモデル コード
コマンドを接続する Viewmodel コンストラクター コード
ボタンのクリックで呼び出されるビューモデルの実際のメソッド
これは機能します。だから私の質問は:
- これは正しい方法ですか?
- (オブジェクト送信者、RoutedEventArgs e) パラメータをビューモデルに伝播する方法はありますか?
- これがボタンのクリックではなく、リストボックスの選択変更イベントであるとします。オブジェクト送信者、SelectionChangedEventArgs eパラメータなしで、選択した項目の値を取得するにはどうすればよいですか?