問題タブ [inputbinding]

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 投票する
3 に答える
4182 参照

wpf - ControlTemplateのListBoxItem MouseBinding InputBindingが機能しないMVVM

誰かにとって明らかな問題であることを願っています。ユーザーが ListBox 内の ListBoxItem をダブルクリックしたときに Edit コマンドが起動するようにします。以前にユーザーコントロールでこれを行ったことがありますが、これは十分に単純なListBoxであるため、VIEWで直接実行したいと考えています。しかし、それは配線されません。

リストボックスは次のとおりです。

最上位の Delete Key バインディングが正常に機能することに注意してください。参照されているスタイルは次のとおりです (個別の ResourceDictionary として取り込まれましたが、スタイルをインラインに配置しても違いはありません)。

違いがあるかどうかを確認するために、マウスバインディングを2か所に配置しましたが、違いはありません. そこには配線が一切ありません。他のすべては期待どおりに機能します。ビューでプレーン ボタンを作成し、それを DataQuerySortEdit コマンドにポイントすると、期待どおりに機能します。

何か不足していますか?助けてくれてありがとう。


編集:Jの応答に応じて、さらに情報を追加するだけです。ControlTemplate の Border に最も近いリストボックスに相対的なバインディングを与え、リストボックスに名前を付けて、出力がそれを見つけることを確認できるようにしました。これは出力ウィンドウでした:

したがって、バインドの 2 回目の試み (Border InputBinding のものと推測しています) は、適切なリストボックスを正常に処理しますが、それでも ICommand を見つけることができません。ウィンドウ、リストを含むGirdなどに対して相対検索を試みましたが、それでも配線できません。また、Jが相対検索をMouseBindingsに直接入れるように言及したように試みましたが、同じエラーが発生しました。


EDIT2:MVVMLightを使用したViewModelのコマンドとプロパティは次のとおりです

CanDataQuerySortEdit を取り出しても違いはありません。ボタンを作成してポイントすると機能するため、すべてが機能することを知っています。もちろん、ListBoxItemsの外側をクリックする限り、動作するDeleteキーのようなマウスのListBoxにinputbindingも作成すると。

EDIT3:これは、クラス、データコンテキスト、およびリソースを含むビュー自体の一部です。「{x:Type Window}」および「{x:Type l:ToolkitWindowBase}」になるように相対バインディングを試みました。ToolkitWindowBase は Window を直接拡張します。frmDataBrowserViewModel は、MVVMLight から ViewModelBase を拡張する ToolkitViewModelBase というクラスを拡張します。


EDIT4: 誰かがまだリストに載っている場合に備えて、「BindingTestWindow」という単一のウィンドウと「MainWindowViewModel」というビューモデルを持つ「WpfMvvmApplication1」という新しい WPF プロジェクトを作成してください。ファイル/プロジェクトに別の名前を使用していない限り、カット/ペースト):

VIEWMODEL の場合:

これには他に何もありません。inputbinding が listboxtiem 内にある場合はバインディング エラーが発生しますが、たとえばリストボックス自体にある場合は発生しません。出力がFindAncestorでウィンドウを見つけたと言っているので、うまくいくはずです。

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

r - server.R から「バインド」された入力を呼び出す

Shiny のバインド機能を正常に実装しましたが、関数は ui.R で定義されており、この新しい入力の server.R からの呼び出しにより、関数が見つからないというエラーが発生します。

私はsessionserver.Rに渡しています(それが違いを生むかどうかはわかりません)そして、関数を単純に含むglobal.Rも作成しました(それ以上のものが必要かどうかはわかりません。 ui.R の関数)。

server.R から (特に a で) カスタムの光沢のある入力関数を呼び出すにはどうすればよいrenderUIですか?

ここにコード例: (への呼び出しsortListは ui.R からは正常に機能しますが、server.R からは機能しません) https://gist.github.com/jpd527/9687359

0 投票する
5 に答える
17215 参照

wpf - InputBindings は、フォーカスされている場合にのみ機能します

再利用可能なユーザーコントロールを設計しました。UserControl.InputBindings が含まれています。ラベルとボタン (および新しいプロパティなど) しか含まれていないため、非常にシンプルです。

ウィンドウでコントロールを使用すると、うまく機能します。ただし、キーバインドはフォーカスされている場合にのみ機能します。1 つのコントロールが alt+f8 にバインドされている場合、このショートカットはフォーカスされている場合にのみ機能します。独自のバインディングを持つもう一方がフォーカスされると、それは機能しますが、alt+f8 は機能しなくなります。どのコントロールにもフォーカスがない場合、何も機能しません。

ユーザーコントロールがウィンドウ全体のキーバインドを定義するようにするにはどうすればよいですか?

特に MVVM 設計パターン (Caliburn.Micro を使用) に従っていますが、助けていただければ幸いです。


ユーザー コントロールの XAML:

使用例:

前述のように、各ボタンはマウス クリックで動作し (Execute が起動されます)、フォーカスされるとスペースを使用してボタンをアクティブにできます。フォーカスされたボタンの入力バインディングは機能しますが、フォーカスされていないボタンは機能しません。

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

wpf - PreviewMouseLeftButtonDown と InputBindings の関係

で使用.NET 4.5.1Windows 8.1 Proます。私UserControlはグリッドを持っています。このグリッドでマウス イベントをプレビューして処理する必要があります。だから私はイベントをオーバーライドしますPreviewMouseLeftButtonDown

私の静的コンストラクターに登録されているものもUserControlいくつかあります。InputBindings例えば:

InputBinding依存PreviewMouseLeftButtonDown?!

これで、ハンドラーでを設定e.Handledすると、 が機能しなくなりました! どうして?!マウス ハンドラーがキーボード ショートカットにどのようにリンクされているのか理解できません。truePreviewMouseLeftButtonDownInputBinding

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

wpf - WPF コンテンツが WinForms でホストされている場合にコマンドの入力バインディングを使用する方法

タブ コントロールを持つ Windows フォーム ウィンドウがあり、そのタブの 1 つが子要素として ContentControl を持つ ElementHost をホストしています。このコントロールには、子要素に入力フォーカスがある場合にのみ機能する入力バインディングのコレクションがありますが、フォーカスが失われると反応しなくなります。このような状況で、これらの入力バインディングをより高いレベルで定義することは可能ですか?

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

c# - キーバインド ラベル

私はTreeView次の定義を持っています:

このビューは、コード ビハインド ファイルに次のように関連付けられています。

DataContext="{Binding RelativeSource={RelativeSource Self}}"

InputBindingfor は正常LeftDoubleClickに動作します。

しかし、InputBinding「削除」キーは機能しません。

がバインドされている場所は次のようになりますCommandKeyBinding

コンストラクターで次を定義します。

DeleteFolder-Method は次のようになります。

私は何を間違っていますか?

Output-Window で Binding-Errors を確認しましたが、何もありません。

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

c# - c#wpfは、関数を開始するためのローカルホットキーを定義します

いくつかの小さな機能を開始できるホットキーを定義する必要がありますが、コマンドと CommandBinding を使用する必要がある InputBinding を使用しようとしました。他の方法はありますか? 関数を呼び出したいだけです。