問題タブ [routed-events]

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 に答える
460 参照

c# - C# - RoutedEvent をリッスンしているサブスクライバーのリストを取得しますか?

PasswordBox PasswordChanged イベントをサブスクライブしているオブジェクトのリストを取得しようとしています。

PasswordBox には、静的な読み取り専用の RoutedEventPasswordChangedEventとインスタンスPasswordChangedイベントがあります。

ありがとう!

0 投票する
7 に答える
8806 参照

c# - MouseDoubleClick イベントがバブルしない

簡略化した私のシナリオ: 従業員の行を含む ListView があり、各従業員の行には、給与を調整する「増加」および「減少」ボタンがあります。

私のプログラムで、従業員の行をダブルクリックすると、「この人を解雇する」ことを意味するとします。

問題は、「増加」をすばやくクリックしているときに、ListViewItem でダブルクリック イベントがトリガーされることです。当然のことながら、給料を上げているだけで人を解雇したくはありません。

他のすべてのイベントがどのように機能するかによると、イベントを設定することでこれを解決できると期待してHandled=trueいます。ただし、これは機能しません。WPF は、完全にリンクされていない 2 つの別個のダブルクリック イベントを生成するように思われます。

以下は、私の問題を再現するための最小限の例です。目に見えるコンポーネント:

そしてハンドラコード:

このプログラムを起動し、リストされたボタンをダブルクリックすると、両方のメッセージ ボックスが順番に表示されます。(また、この後ボタンが下の位置で動かなくなります。)

「修正」として、ListViewItem ハンドラーで、イベントに関連付けられたビジュアル ツリーを検査し、「どこかにボタンがある」ことを確認してイベントを破棄できますが、これは最後の手段です。そのようなクラッジをコーディングする前に、少なくとも問題を理解したいと思います。

WPFがこれを行う理由と、問題を回避するためのエレガントな慣用的な方法を知っている人はいますか?

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

c# - なぜe.Handled=trueが機能しないのですか?

私は次のXAMLを持っています

背後のコードで私はこれをやっています

これで、マウスを上に移動しButtonて設定しても、とe.Handled = trueのイベントがそれぞれ呼び出されます。なんで?ルーティングされたイベントがバブリングするのを防ぐにはどうすればよいですか?GridStackPanel

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

asp.net-mvc - RouteCollection を使用して MVC .NET URL がルーティングされない

MVC .NET と RouteCollection クラスを使用して、Web アプリで URL をルーティングしています。これは、URL 内の任意の場所にテキスト "PRN" を含む URL を渡すまでは正常に機能します。この場合、ルーティングは行われず、400 Page Not Found エラーがクライアントに返されます。ルーティング コレクションが参照される前に、何かがエラーをスローしているようです。これは、URL が取るべきルートが決して変更されないためです (つまり、基になるコードのブレークポイントがヒットすることはありませんが、文字列 "PRN " がブレークポイントにヒットします)。

したがって、ページの検証の問題である可能性があると考えました.URLに「PRN」というフレーズが含まれている場合、「印刷」や「ポルノ」のようなものであるため、Microsoftが例外をスローすることを決定した可能性がありますが、その場合は「潜在的に危険な Request.Form 値がクライアントから検出されました」というエラーが表示されますが、そうではありません。

Google は PRN が "ポルノ" の結果を返す必要があると考えているため、これを調査するのは面倒でした。つまり、検索結果の 98% が無効 (かつ不適切) であるということです。Google で「-porn」句を使用すると、結果が約 10 ~ 30 件のヒットにまで落ち込み、すべて役に立たなくなります。

文字列「PRN」を含む URL が適切にルーティングされない理由を知っている人はいますか? 参考になる投稿やスレッドがあれば、それは素晴らしいことです (繰り返しますが、Google は私を失望させました)。

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

wpf-controls - ButtonBase を使用したルーティング イベント引数

私は現在、メンバーのチームと一緒にプログラムに取り組んでいますが、彼らもこれを解決する方法を知りません。特殊なユーザー コントロール「ImageButton」のセットを作成しました。プログラムのメニューセクションにそれを使用しています。メニュー自体は別のユーザー コントロールです。

現在、ButtonBase.Click を使用してボタンにアクセスしていますが、新しい ImageButtons では機能しません。

ButtonBase.Click は、「MainMenu_Click」というイベントにつながります。

private void MainMenu_Click(object sender, RoutedEventArgs e) { Button _menuButtonClicked = (Button)e.OriginalSource; this.ShowMainPage((MainMenuCommands)_menuButtonClicked.Tag); }

私はすでにそれらを ImageButtons として解析しようとしましたが、うまくいきませんでした。したがって、ButtonBase.Click に似ているが、ImageButtons 用のソリューションが必要です。

編集: 私が使用している 3 つのファイルがあります: MainWindow.xaml (およびその cs) MainMenu.xaml (およびその cs) ImageButton.xaml (およびその cs)

MainMenu にはいくつかの ImageButtons があります。MainMenu は MainWindow で使用されます。設定するプロパティの 1 つは、ButtonBase.Click です。しかし、System.Windows.Controls.Button ではなく ImageButtons 用にセットアップする必要があります。

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

wpf - PreviewMouseDown が期待どおりにトンネリングしない

アプリに次のツリーがあります。

MyCustomControl は ItemsControl から派生し、その項目を StackPanel に表示します。

MyCustomControl は、マウスがクリックされたときに知る必要があるため、OnPreviewMouseDown メソッドをオーバーライドし、コントロール内でマウスが押されたときに通知を受けることを期待しています。

何が起こるか: Button1 内をクリックすると、PreviewMouseDown イベントがツリーに沿って移動し、OnPreviewMouseDown が期待どおりに実行されます。しかし、Item1 をクリックすると、PreviewMouseDown イベントは MainWindow の直後に停止し、LayoutRoot にも到達しません。

Snoopを使用して取得したルーティング イベントの詳細は次のとおりです。

Button1 のクリック:

Item1 をクリック:

イベントは処理済みとして報告されることはないため、私が知る限り、トンネリングを続行する必要があります。

ここで何が欠けていますか?

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

mvvm - DelegateCommand test with EventArg parameter mstest

I currently have an event trigger firing a custom trigger action.

The action passes back a EventArgs type of object to the view's view-model.

This is all well an

I currently have an event trigger firing a custom trigger action.

The action passes back a EventArgs type of object to the view's view-model.

This is all well and good when I run the code it works perfectly. However, when I come to test this portion of code it all goes a bit rubbish.

As stated We are using an MVVM type pattern so I'm testing the 'Doing' end of the event trigger in my view-model and what I want to do is create a 'mocked' EventArgs object to pass into the execute method of my command under test. However it requires a RoutedEvent as it's ID property as stated above and I don't have access to it's constructor!

Has anyone got any ideas? The code converage in test is more important than the current implimentation so if this is thought to be 'untestable', then I can make changes.


Why do I get an error with .Click() Event for an Asp:LinkButton in Firefox?

I am attempting to fire the click() event when a button is clicked.

This currently works for me in IE however I receive the following error in firefox:

"link.click is not a function"

I have been trawling google regarding this and found out the .click event is not supported in all versions of firefox.

Is anyone able to provide an alternative? Code below:

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

windows-phone-7 - WP7 カスタム コントロールの RoutedEvents

Silverlight の通常版では、EventManager で登録することでイベント ハンドラーを作成できます。Windows Phone 7 にはそのクラスがありません。私の質問は、親パネルによって処理されるイベントを作成する方法です。

私のシナリオ: テキスト ボックスを含むカスタム クラスを作成しました。Foreach テキストブロックがクリックされたときに発生するカスタム動作を追加しました。動作は次のように機能します。

私の問題を処理する方法を教えてもらえますか?

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

c# - ルーティング イベントと ScrollViewer

これが私の要素ツリーの構成方法です(無関係な情報は削除されています)。

ドラッグアンドドロップをシミュレートしています。クリック可能なラベルをクリックすると、カーソルが変形して、ドラッグしたような印象を受けます。私が欲しいのは、TabItemをクリックすると、通常のカーソルが元に戻ることです。

PreviewMouseDown イベントを使用すると、ラベルのクリックが許可されないため、使用できません。

私が見つけた解決策の 1 つは、ScrollViewer と ItemsControl の間の要素ツリーに大きなパネルを追加して、クリックを受け取る透明な背景を追加し、ItemsControl の CollapsibleGroupHeaderItemsPanel にイベント ハンドラーを配置することでしたが、実際にはエレガントな解決策ではありません。

そのような問題を解決するために、WPF で RoutedEvents を扱います...

注:私のハンドラーは私のスタイルではなく、より多くの情報を提供するためだけのスタイルです

私よりも良い解決策はありますか?

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

wpf - あるコントロールから別のコントロールに RoutedEvent ハンドラーをコピーする

他の情報を持たない関数から返された WPF MenuItem があり、別の (新しい) MenuItem のクリック イベントを最初の MenuItem と同じ関数に設定したいと考えています。

Windows フォームでこれを行うコードを見たことがあります (たとえばIs it possible to "steal" an event handler from one control and give it another? ) が、WPF ルーティング イベントの解決策が見つかりません。