問題タブ [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.
c# - コマンドバインディングを使用した複数のパラメーター
コマンドバインディングとPrismライブラリを使用するテキストブロックがあります。
これはXAMLparthです。
そしてこれは背後にあるViewModelです:
これは、このイベントトリガーをリッスンし、SSNをパラメーターとして関数を起動するGridViewModelです。
別のパラメーター、たとえば日時パラメーターを追加するにはどうすればよいですか。混乱する部分は次のとおりです。
この公開関数は1つのパラメーターしか受け取らないため、複数のパラメーターを簡単に追加する方法がわかりません。
wpf - UserControl での CommandBindings のシリアル化を停止する
コマンド バインディングとコンテンツをプログラムで設定するユーザー コントロールがあります。
また、このコントロールを XAML にシリアル化します。これらを設定したので、コンテンツまたはバインディングをシリアル化したくありません。コンテンツはオーバーライドすることで処理されます:
そして、コマンドバインディングの同等物を見てうれしく思いました:
ただし、この関数は仮想関数ではなく、実装で new を指定して非表示にしても何も起こらないように見えますか? これは、この MS ページによると、推奨される使用方法のようです: http://msdn.microsoft.com/en-us/library/53b8022e(v=vs.85).aspx
また、CommandBindings プロパティをシャドウして [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] を使用しようとしましたが、これではバインドが壊れてしまいます。
誰でも正しい方法を教えてもらえますか? これはバグですか?
wpf - WinForms TextBoxにフォーカスがあるにもかかわらずWPFコマンドが起動する
与えられた:
Ctrl+Xを押すと発火しWinFormsTextBox
ますCommandBinding_Executed
が、 にいるときは発火しませんWpfTextBox
。
WpfTextBox
forの振る舞いをしたいですWinFormsTextBox
。つまり、コマンドは、何もフォーカスがない場合にのみ起動する必要があります。これは、グローバル ビュー コマンドなどのように機能する必要があります。
注: コマンドのイベントにハンドラーを追加することは、 ( +が-に設定されている場合、テキストがカットされないことを意味する)CanExecute
で何かが発生するのを防ぐか、通常どおり実行するのに役立つだけです。WinFormsTextBox
CtrlXe.CanExecute
true
注 2: カットは単なる例です。任意のコマンド バインディングで機能するソリューションが必要です。
注 3: ListView などのように、フォーカスがある場合、コマンドは別のコントロールから起動できる必要があります。内部にフォーカスのある TextBox がない限り (編集モードを考えてください)。
メソッドに特定の処理を追加する必要があることを受け入れたくありませんCommandBinding_Executed
。でも、C'est la vie。
wpf - WPF ContextMenu CommandBinding 無効
ボタンとコンテキスト メニューが同じコマンドにバインドされています。アプリを起動すると、ボタンは有効になりますが、コンテキスト メニュー項目は有効になりません (前述したように、それらは同じコマンドにバインドされています)。ボタンをクリックした後にのみ、コンテキスト メニュー項目が有効になります。理由を知っている人はいますか?
これが XAML です。
ありがとう!
編集:
コマンドコード:
コマンド イベント ハンドラー (MainWindow.xaml.cs 内):
silverlight - Blendを使用せずにMVVMパターンを使用してSilverlightでカスタムイベントをバインドするにはどうすればよいですか?
チャートコントロールを含むSilverlightプロジェクトを開発しています。
私はチャートコントロールを使用しており、そのシリーズでは、2つのMenuItemsを持つ左クリックコンテキストメニューを実装しました。「拡張」と「ドリル」。
私が個別のクリックイベントを宣言した両方のメニュー項目について、それらを登録して発生させました。次に、XAMLのこれらのイベントをビューモデルのICommandプロパティに結合しました。
しかし、コードをデバッグすると、「ExpandClickEvent」と「DrillClickEvent」がnullとして表示されます。これは、誰もそれを聞いていないためです。
このWebChartコントロールをChartBaseControlという名前の別のユーザーコントロールで使用しています。このユーザーコントロールは、GraphControlという名前の別のユーザーコントロールで使用されています。DataContextは適切にセットアップされています。ViewModelGraphControlという名前のViewModelを作成しました。
足りないものがあると思います。問題の世話をしてください。
編集されたコンテンツ:XAML:
wpf - ButtonがICommandの実行を完了したときにコールバックを取得する方法はありますか?
コントロールのボタン(最終的にはを実行する)にハンドラー(コールバック)をアタッチしてICommand
、コマンドの実行がいつ完了したかをコントロールが認識できるようにする方法はありますか?
c# - あるウィンドウで定義されたWPFCommandBindingsは、別のウィンドウでは使用できません
MainWindowでこれらすべてのCommandBindingを定義している場合、この問題が発生します。これらのコマンドは、そのウィンドウ内で使用でき、任意のButtonまたはMenuItemで使用できます。問題は、他のウィンドウでコマンドバインディングが使用できない場合(常にfalse)、新しいウィンドウの所有者がMainWindowであってもです。
どんな助けでも本当にありがたいです。
これがコードです。
XAMLメインウィンドウ:
CSメインウィンドウ:
CS LocalCommandManager:
XAMLサブウィンドウ:
c# - Command CanExecute および Executed ハンドラをメイン ウィンドウ クラスの外に配置する際の問題
基本的に、Window.CommandBindings に割り当てられたコマンド自体のコマンド バインディングがあります。
local は、デフォルトで生成される名前空間で、アプリケーションの名前空間を指します。ここで達成しようとしているのは、TimerViewModel 内でコマンドを処理することですが、次のエラーが発生し続けます。
CanExecute="local:TimerViewModel.AddTimer_CanExecute" は無効です。「local:TimerViewModel.AddTimer_CanExecute」は、有効なイベント ハンドラー メソッド名ではありません。生成されたクラスまたはコード ビハインド クラスのインスタンス メソッドのみが有効です。
ただし、TimerViewModel は非常に単純ですが、何かが足りないと思います。
誰かが私が犯している間違いを指摘できますか?
c# - InputBindingとWebBrowserコントロール
メニュー項目にバインドされているWPFコマンドにキーボードショートカットをバインドしようとしている非常に単純なアプリケーションがあります。アプリケーション自体は、Menu
とWebBrowser
コントロールだけで構成されています。
内にいるときWebBrowser
、キーボードショートカットはWPFメニューにルーティングされません。たとえば、Webブラウザでフォーカスされているときに「Ctrl + O」と入力すると、IEの開いているページが表示されます。さらに、このアプリケーションでは、(Altを入力して)メニューにフォーカスを設定しない限り、入力バインディングは起動しません。たとえば、タイトルバーをクリックしてからショートカットを入力しても、WPFウィンドウに焦点を合わせることができません。完全なコードは以下に複製されます:
MainWindow.xaml
MainWindow.xaml.cs
wpf - コマンドとメニュー
TextBlock コントロールを含む多数の Borders を含む UserControl を作成しました。TextBlocks の Text プロパティは、ViewModel オブジェクトのデータに設定されています。
UserControl のリソースにいくつかのコンテキスト メニューを追加しました。
コンテキスト メニューへの参照を TextBlocks に追加しました。次に例を示します。
最後に、CommbandBindings を UserControl に追加しました。
これまでのところ、これには2つの問題があります。
コントロールを右クリックすると、メニューが表示されますが、選択肢がグレー表示されます。CopyCommand_CanExecute、CopyCommand_Executed、および CopyPlateCommand_Executed メソッドの先頭にブレークポイントを配置しました。これらのブレークポイントは、これまでのところ 1 回の実行でヒットしました。なぜ彼らがその時に攻撃されたのかはわかりませんが、それ以前もそれ以降もありません。CanExecute メソッドが毎回呼び出されるようにするにはどうすればよいですか?
一度ブレークポイントにヒットしたとき、引数の Source プロパティは、私が思っていたコントロールではなく、UserControl でした。UserControl のどの TextBlocks がイベントを発生させたかを知る必要があります。それ、どうやったら出来るの?
トニー
編集:
UserControl には、ComboBox コントロールも含まれています。ComboBox をドロップダウンした後に TextBlocks を右クリックすると、CanExecute メソッドが実行されることがわかりました。コンボボックスで何も選択する必要はありません。クリックするだけです。
私のコードではなく、ComboBox が何をしているのか考えてみませんか?
もう 1 つのことは、ComboBox をドロップダウンした後、Execute イベント引数の OriginalSource が ComboBox であることです。いくつかの TextBlocks で同じ Copy コマンドを使用したいのですが、どの TextBlock の Text をクリップボードにコピーするかを知るために、どのコンテキスト メニューが使用されたかを知る必要があります。ヘルプ!