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

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

c# - コマンドバインディングを使用した複数のパラメーター

コマンドバインディングとPrismライブラリを使用するテキストブロックがあります。

これはXAMLparthです。

そしてこれは背後にあるViewModelです:

これは、このイベントトリガーをリッスンし、SSNをパラメーターとして関数を起動するGridViewModelです。

別のパラメーター、たとえば日時パラメーターを追加するにはどうすればよいですか。混乱する部分は次のとおりです。

この公開関数は1つのパラメーターしか受け取らないため、複数のパラメーターを簡単に追加する方法がわかりません。

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

wpf - UserControl での CommandBindings のシリアル化を停止する

コマンド バインディングとコンテンツをプログラムで設定するユーザー コントロールがあります。

また、このコントロールを XAML にシリアル化します。これらを設定したので、コンテンツまたはバインディングをシリアル化したくありません。コンテンツはオーバーライドすることで処理されます:

そして、コマンドバインディングの同等物を見てうれしく思いました:

ただし、この関数は仮想関数ではなく、実装で new を指定して非表示にしても何も起こらないように見えますか? これは、この MS ページによると、推奨される使用方法のようです: http://msdn.microsoft.com/en-us/library/53b8022e(v=vs.85).aspx

また、CommandBindings プロパティをシャドウして [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] を使用しようとしましたが、これではバインドが壊れてしまいます。

誰でも正しい方法を教えてもらえますか? これはバグですか?

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

wpf - WinForms TextBoxにフォーカスがあるにもかかわらずWPFコマンドが起動する

与えられた:

Ctrl+Xを押すと発火しWinFormsTextBoxますCommandBinding_Executedが、 にいるときは発火しませんWpfTextBox

WpfTextBoxforの振る舞いをしたいですWinFormsTextBox。つまり、コマンドは、何もフォーカスがない場合にのみ起動する必要があります。これは、グローバル ビュー コマンドなどのように機能する必要があります。

注: コマンドのイベントにハンドラーを追加することは、 ( +が-に設定されている場合、テキストがカットされないことを意味する)CanExecuteで何かが発生するのを防ぐか、通常どおり実行するのに役立つだけです。WinFormsTextBoxCtrlXe.CanExecutetrue

注 2: カットは単なる例です。任意のコマンド バインディングで機能するソリューションが必要です。

注 3: ListView などのように、フォーカスがある場合、コマンドは別のコントロールから起動できる必要があります。内部にフォーカスのある TextBox がない限り (編集モードを考えてください)。

メソッドに特定の処理を追加する必要があることを受け入れたくありませんCommandBinding_Executed。でも、C'est la vie。

0 投票する
0 に答える
1140 参照

wpf - WPF ContextMenu CommandBinding 無効

ボタンとコンテキスト メニューが同じコマンドにバインドされています。アプリを起動すると、ボタンは有効になりますが、コンテキスト メニュー項目は有効になりません (前述したように、それらは同じコマンドにバインドされています)。ボタンをクリックした後にのみ、コンテキスト メニュー項目が有効になります。理由を知っている人はいますか?

これが動作です。

これが XAML です。

ありがとう!

編集:

コマンドコード:

コマンド イベント ハンドラー (MainWindow.xaml.cs 内):

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

silverlight - Blendを使用せずにMVVMパターンを使用してSilverlightでカスタムイベントをバインドするにはどうすればよいですか?

チャートコントロールを含むSilverlightプロジェクトを開発しています。

私はチャートコントロールを使用しており、そのシリーズでは、2つのMenuItemsを持つ左クリックコンテキストメニューを実装しました。「拡張」と「ドリル」。

私が個別のクリックイベントを宣言した両方のメニュー項目について、それらを登録して発生させました。次に、XAMLのこれらのイベントをビューモデルのICommandプロパティに結合しました。

しかし、コードをデバッグすると、「ExpandClickEvent」と「DrillClickEvent」がnullとして表示されます。これは、誰もそれを聞いていないためです。

このWebChartコントロールをChartBaseControlという名前の別のユーザーコントロールで使用しています。このユーザーコントロールは、GraphControlという名前の別のユーザーコントロールで使用されています。DataContextは適切にセットアップされています。ViewModelGraphControlという名前のViewModelを作成しました。

足りないものがあると思います。問題の世話をしてください。

編集されたコンテンツ:XAML:

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

wpf - ButtonがICommandの実行を完了したときにコールバックを取得する方法はありますか?

コントロールのボタン(最終的にはを実行する)にハンドラー(コールバック)をアタッチしてICommand、コマンドの実行がいつ完了したかをコントロールが認識できるようにする方法はありますか?

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

c# - あるウィンドウで定義されたWPFCommandBindingsは、別のウィンドウでは使用できません

MainWindowでこれらすべてのCommandBindingを定義している場合、この問題が発生します。これらのコマンドは、そのウィンドウ内で使用でき、任意のButtonまたはMenuItemで使用できます。問題は、他のウィンドウでコマンドバインディングが使用できない場合(常にfalse)、新しいウィンドウの所有者がMainWindowであってもです。

ここで問題を確認できます。

どんな助けでも本当にありがたいです。

これがコードです。

XAMLメインウィンドウ:

CSメインウィンドウ:

CS LocalCommandManager:

XAMLサブウィンドウ:

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

c# - Command CanExecute および Executed ハンドラをメイン ウィンドウ クラスの外に配置する際の問題

基本的に、Window.CommandBindings に割り当てられたコマンド自体のコマンド バインディングがあります。

local は、デフォルトで生成される名前空間で、アプリケーションの名前空間を指します。ここで達成しようとしているのは、TimerViewModel 内でコマンドを処理することですが、次のエラーが発生し続けます。

CanExecute="local:TimerViewModel.AddTimer_CanExecute" は無効です。「local:TimerViewModel.AddTimer_CanExecute」は、有効なイベント ハンドラー メソッド名ではありません。生成されたクラスまたはコード ビハインド クラスのインスタンス メソッドのみが有効です。

ただし、TimerViewModel は非常に単純ですが、何かが足りないと思います。

誰かが私が犯している間違いを指摘できますか?

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

c# - InputBindingとWebBrowserコントロール

メニュー項目にバインドされているWPFコマンドにキーボードショートカットをバインドしようとしている非常に単純なアプリケーションがあります。アプリケーション自体は、MenuWebBrowserコントロールだけで構成されています。

内にいるときWebBrowser、キーボードショートカットはWPFメニューにルーティングされません。たとえば、Webブラウザでフォーカスされているときに「Ctrl + O」と入力すると、IEの開いているページが表示されます。さらに、このアプリケーションでは、(Altを入力して)メニューにフォーカスを設定しない限り、入力バインディングは起動しません。たとえば、タイトルバーをクリックしてからショートカットを入力しても、WPFウィンドウに焦点を合わせることができません。完全なコードは以下に複製されます:

MainWindow.xaml

MainWindow.xaml.cs

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

wpf - コマンドとメニュー

TextBlock コントロールを含む多数の Borders を含む UserControl を作成しました。TextBlocks の Text プロパティは、ViewModel オブジェクトのデータに設定されています。

UserControl のリソースにいくつかのコンテキスト メニューを追加しました。

コンテキスト メニューへの参照を TextBlocks に追加しました。次に例を示します。

最後に、CommbandBindings を UserControl に追加しました。

これまでのところ、これには2つの問題があります。

  1. コントロールを右クリックすると、メニューが表示されますが、選択肢がグレー表示されます。CopyCommand_CanExecute、CopyCommand_Executed、および CopyPlateCommand_Executed メソッドの先頭にブレークポイントを配置しました。これらのブレークポイントは、これまでのところ 1 回の実行でヒットしました。なぜ彼らがその時に攻撃されたのかはわかりませんが、それ以前もそれ以降もありません。CanExecute メソッドが毎回呼び出されるようにするにはどうすればよいですか?

  2. 一度ブレークポイントにヒットしたとき、引数の Source プロパティは、私が思っていたコントロールではなく、UserControl でした。UserControl のどの TextBlocks がイベントを発生させたかを知る必要があります。それ、どうやったら出来るの?

トニー

編集:

UserControl には、ComboBox コントロールも含まれています。ComboBox をドロップダウンした後に TextBlocks を右クリックすると、CanExecute メソッドが実行されることがわかりました。コンボボックスで何も選択する必要はありません。クリックするだけです。

私のコードではなく、ComboBox が何をしているのか考えてみませんか?

もう 1 つのことは、ComboBox をドロップダウンした後、Execute イベント引数の OriginalSource が ComboBox であることです。いくつかの TextBlocks で同じ Copy コマンドを使用したいのですが、どの TextBlock の Text をクリップボードにコピーするかを知るために、どのコンテキスト メニューが使用されたかを知る必要があります。ヘルプ!