問題タブ [commandbinding]
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 CommandBinding が機能しない
WPFウィンドウにボタンがあります。マウスの左クリックと Ctrl+F の両方を押してメッセージを表示したい。XAML でほとんどのコードが必要です。コードは以下の通りです。私の問題は、マウスのクリックは機能しますが、キーを押すことはできないことです。誰でも私を助けてください。前もって感謝します。
c# - WPF でコマンドをバインドする方法
複雑な方法を何度も使いすぎて、タスクを実行する最も簡単な方法を忘れてしまうこともありました。
コマンドバインディングの方法は知っていますが、常に同じアプローチを使用しています。
ICommand インターフェイスを実装するクラスを作成し、ビュー モデルからそのクラスの新しいインスタンスを作成すると、バインディングが魅力的に機能します。
これは、コマンドバインディングに使用したコードです
しかし、これを行うための基本的な方法を知りたいです。サードパーティのdllはなく、新しいクラスは作成されません。単一のクラスを使用して、この単純なコマンド バインディングを実行します。実際のクラスは ICommand インターフェイスから実装し、作業を行います。
c# - コマンドバインディングがコンテキスト依存メニューで機能しませんか?
ツリービューを含むユーザーコントロール(例:UserCtrlClass)があります
ツリービューでの実際のアイテム/データ表示を表すためのビューモデル(例:OBJViewModel)クラスがあります
次に、OBJViewModelオブジェクトのリストを持つツリービューモデル(例:TreeViewModel)があります
これで、ユーザーコントロールのコードビハインドファイルで、ツリービューモデルクラスをインスタンス化し、ユーザーコントロールクラスのデータコンテキストとして設定しました。
ツリー内の特定のアイテムを右クリックしたときにのみ表示する必要があるコンテキスト依存のメニューが必要なので、ユーザーコントロールクラスの右クリックイベントを処理し、そこで作業を行いました
しかし、コマンドは機能していません。コマンドはIコマンドから派生し、TreeViewModelクラスでインスタンス化されます。Command.executeをデバッグしようとしましたが、ヒットしませんでした。私は.netとwpfの初心者なので、助けていただければ幸いです。
TreeViewModelクラス
クラスの背後にあるコード
}
TreeViewModelクラス
xaml - MVVM、Xaml、コマンド バインディング、例外処理、メッセージ ボックス
現在、Windows Phone アプリを開発しています。私はMVVMとその利点についてかなり知っています。そのため、UI ロジックをビジネス ロジックから分離するように最善を尽くしています。しかし、私はこれに困惑しています。
ViewModel に Command があり、UI が xaml を介してこのコマンドにバインドされているとします。したがって、実行関数を呼び出すことはありません。このコマンドが実際に例外をスローできるとします。これをキャッチして通知を表示したい。頭に浮かんだのは次のことです。
- 何か問題が発生したときに通知できるように、インターフェイスをコマンドに渡します。このインターフェイスを実装するクラスは、メッセージ ボックスを表示するロジックを保持できます。これは正常に機能しますが、アプリのグローバリゼーション/ローカリゼーションが壊れます。エラー メッセージを AppResources.resx ファイルに保存して、既定の言語が変更されたときに適切なエラー メッセージが選択されるようにします。ビューモデルにあるコマンドに追加するとテストできないため、コマンドから AppResources を呼び出したくありません
- try catch を使用してコード ビハインドからコマンドを呼び出すと、例外に基づいて MessageBox を直接表示できます。
どちらのソリューションにもあまり満足していません。UI にバインドされているコマンドの例外を処理する良い方法はありますか? DispatchedUnhandledException を見ましたが、ドメイン固有になるのでしょうか? ユーザーに通知するために、すべての例外を 1 か所でキャッチする必要はありません。適切なビューでそれを処理したい。ありがとう!
c# - WPF でのイベントとコマンドのバインド
WPF にテキスト ボックスがあり、コマンドをその LostFocus イベントにバインドし、そのコマンドでいくつかの検証を行います。
同じウィンドウに、キーバインディングが Ctrl + S の [保存] ボタンがあります。
テキストボックスにいくつかの変更を加えてから Ctrl + S を押すと、テキストボックスで Lost focus イベントを発生させずに保存コマンドを実行します。
私はこれが設計によるものであることを知っています。
しかし、保存コマンドの前にそのコードを実行したいのですが、保存プロセスでそのコードをハードコードすることはできません。フォーカスがテキストボックスにある場合にのみ実行したいのです。
wpf - WPF ユーザー コントロールでのルーティング イベントへのコマンド バインディング
Viewmodel コマンドを Usercontrol のルーティング イベントにバインドしたいと考えています。ここに私が持っているものの詳細な説明があります。
Image
1つ(画像を表示)と1つButton
(Button
削除する)のユーザーコントロールがありますImage
。でユーザーコントロールを使用していListView
ます。
私のユーザーコントロールのコードビハインドには、次のRoutedEventHandler
ものを削除する必要がありImage
ます。
このユーザーコントロールを使用するウィンドウに、次のように入力しました。
画像を削除するコードが分離コードにある場合、このコードは正しく機能します。ViewmodelのコマンドをRemoveImage RoutedEventにバインドしたい。
おそらく好きです(正しくない)
これを達成する方法は?
RoutedCommand
またはに関連するものを見つけましDependancyProperty
たが、適切な方法、それらの使用方法が見つかりませんでした。
質問をさらに明確にする必要がある場合はお知らせください。ありがとうございます。
c# - Windows ストア アプリ - バインド コマンドから戻る方法
Windows ストア アプリのバインド コマンドとフレーム ナビゲーションについて少し混乱しています。Windows ストアの Grid App (XAML) テンプレートを使用してプロジェクトを開始し、次のように appbar を追加しました。
次に、クラスにプロパティを作成し、次のようなメソッドを作成しました。
これまでのところ、すべて問題なく、グループが更新され、ファイルも保存されました。UpdateItemCommand クラスの私の実装は次のとおりです。
ここで、SampleDataSource.SaveFileAsync() メソッドの実行の最後にメイン フレーム (GroupedItemsPage.xaml) に戻り、正常に保存されたファイルの MessageDialog を表示する方法 (正しい方法) を見つけたいと思います。よくわからない場合はお知らせください。
c# - ContextMenuのCommandBinding
TreeViewがあり、基本的なTreeItemタイプを作成しました。各TreeItemには、ヘッダー、子用のTreeItemコレクション、および可能なコンテキストメニュー用のコレクションがあります。TreeItemクラスには次のオブジェクトがあります。
コンテキストメニューは再びHierarchicalDataTemplateを使用してTreeItemオブジェクトを表示します(ツリービューとコンテキストメニューの項目にはTreeItemクラスを使用します)。コンテキストメニューは次のようになります。
コンテキストメニューは、希望どおりにレンダリングされます。ツリービューのいくつかのアイテムにアタッチするだけのコンテキストメニューを作成しました。これがその内容です。
コンテキストメニューは次のようになります。
あるべき姿に見えます。コマンドは正常に機能します。コンテキストメニューの最上位にあるコマンドを除きます。「SomeAction」をクリックしても何も起こりません。XAMLに何かを追加する必要があると思いますが、どこにあるのかわかりません。
wpf - DataGridTextColumn で貼り付けコマンドを処理する
入力を制限したい DataGridTextViewColumn があります。PreviewTextInput および PreviewKeyDown イベントのハンドラーを既にアタッチしましたが、Paste コマンドによる入力も制限する必要があります。このテキスト列の [貼り付け] コマンドを処理するにはどうすればよいですか? 私の試みは以下です:
自分の試みがうまくいかない理由は理解していますが、自分が望んでいることを実現する、満足できる解決策が見つからないだけです。私がこれまでに見つけた唯一の解決策は、2010 年のこの SO 投稿 ( DataGridTextColumn event binding ) です。今までにもっと良い解決策があることを願っています。
xaml - WP8 - 親のデータコンテキストにアクセスする
Windows Phone 8 で親要素のデータコンテキストにアクセスするにはどうすればよいですか? AncestorType は WP8 では使用できません。
「MyCommand」は「MyList」の外で定義されています。では、ボタンからルート データ コンテキスト (DataContext = MyClass) にアクセスするにはどうすればよいでしょうか。MyCommand は MyClass クラスで定義されています。
前もって感謝します。