問題タブ [attachedbehaviors]

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

c# - Silverlight: VisualStateManager.GetVisualStateGroups はありません。どうすれば取得できますか?

カスタム動作のオーバーライドと、その動作のイベントに追加されたイベント ハンドラーで使用VisualStateManager.GetVisualStateGroupsしてみました。どちらの場合も、空のリストが表示されます。OnAttachedAssociatedObject.Loaded

コントロールに定義された視覚状態グループを取得する別の方法、またはアタッチする必要がある別のイベント ハンドラーはありますか?

はい、コントロールにはVisualStateGroupsとがありVisualStatesます。

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

wpf - バインディング - 動作を使用する場合の UpdateSource

ViewModel にバインドして特定の値を取得する動作を記述しました。ビヘイビアーの Associated オブジェクトがフォーカスを失ったときにソースを明示的に更新したいのですが、ビヘイビアーはフレームワーク要素ではないため (もちろん)、ビヘイビアーで UpdateSource を実行するバインディングにアクセスできません。動作がアタッチされたときにコードで新しいバインディングを作成し、それへの参照を保持することを考えましたが、より良い方法があるかどうか疑問に思いました。何か案は?

前もって感謝します。

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

wpf - 添付コマンドの動作と LostFocus

ここで説明する方法を使用して、ViewModel ICommand を Combobox の LostFocus イベントにアタッチしますCommandBehavior.RoutedEventName="LostFocus"。バインディングの発生と同時にイベントが発生することを期待しUpdateSourceTrigger=LostFocusていましたが、そうではありませんでした。

selecteditem BindingUpdateSourceTrigger=LostFocusは、キーボードのタブが離されるたびに、またはユーザーが実際にクリックしてドロップダウンから項目を選択した後に発生します (これが原因でフォーカスが失われる理由はわかりませんが、少なくとも選択が行われた後に発生します)。

添付された動作イベントは、ユーザーがコンボボックスをクリックするたびに発生します。すぐに。キーボードを使用している場合は通常どおり動作し、タブから離れると発火します。ただし、マウスを使用している場合、ユーザーが選択を行う前に、コントロールがフォーカスされるとイベントが発生します。選択した項目に対して lostfocus が行うようにこれを動作させる方法はありますか?

編集:別の答えが存在するかどうかは興味がありますが、追加のバインディングを設定することで、この問題を回避する方法を見つけました。SelectedItem はデフォルトで更新され、通常のプロパティ変更通知を処理し、selectedvalue は lostfocus で更新され、実行しようとしていたコマンドのみを処理します。バインディングは次のようになります。

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

wpf - マウスがすでにキャプチャされているかどうかを確認する方法

CanvasとCanvas上のボタンを含むユーザーコントロールを作成しました。ボタンをキャンバス上で移動できるようにするために、以下に示すDragBehaviorをアタッチしました。

ビジネス上の理由から、キャンバスを押したままドラッグする場合も、キャンバスを移動する必要があります。同様のBehaviorクラスを使用して、Canvasの余白を変更し、ドラッグ時にマウスポインタと一緒に移動しているように見せました。この動作はマウスもキャプチャします。

ここで問題は-ボタンをクリックしてドラッグすると、CanvasもMouseイベントを取得し、ドラッグを開始します。ボタンをドラッグしているときに、キャンバスの動作でマウスイベントが発生しないようにするにはどうすればよいですか。

Behaviorsにe.Handled=trueを入れてみましたが、うまくいきませんでした。

マウスが他のオブジェクトによってすでにキャプチャされていることがわかった場合は、Behaviorに条件を設定して、再度キャプチャしないようにすることができます。

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

silverlight - SL4: ItemsControl 内のアイテムの移動 (または再描画) イベントを登録する必要があります

FrameworkElement クラスで移動イベントまたは再描画イベントが見つかりません。そして、Googleも助けません。そう...

VM の監視可能なコレクションによって設定されたカスタム ItemsControl があります。ItemsControl 自体は、

ユーザーがアセンブリ全体をドラッグできるようにします。

ユーザーがアセンブリを移動すると、アセンブリの移動の結果としてアイテムの位置が変更されるため、各アイテムから通知を受けたいです。これまでに登録してみました

しかし、アセンブリをドラッグしても発火しないようです。

また

十分ではないアイテムにマウスを合わせた場合にのみ機能します。私は ItemsControl を移動しているため、イベントを発生させるにはアイテムにマウスを移動する必要があります。

何か案は?OneOfMyDecendantsWasRedrawn イベントなどの形で、ビジュアル ツリーの先祖にヘルプを求めることはできますか? 繰り返しますが、アイテムが移動したときに通知されず、アセンブリが移動したときに通知されないようにしています。

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

silverlight - SL4/MVVM: VM で void Foo() を使用して MouseDragElementBehavior.Dragging イベントを処理する

私が持っているコントロールで MouseDragElementBehavior.Dragging イベントを処理しようとしています。私がこれをやりたい理由の背景については、こちらを参照してください。

このイベントの配線に問題があります。XAML から、ユーザー コントロールに動作を追加したことがわかります。次に、CallMethodAction EventTrigger を介して動作の Dragging イベントにハンドラーを追加しようとしました。

次のメソッド シグネチャを試してみましたが、うまくいきませんでした。

添付されたビヘイビアでイベントを処理するためにトリガーを使用した経験がある人はいますか?

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

wpf - パブリックとプライベートのAttachedProperties

AttachedPropertiesとして持つことはどこに意味がありますか?通常、それは(例)として定義されます:privatepublic

しかし、私はいくつかのプロパティがprivate static readonly...

CommandProperty上記を今に変更するとどうprivateなりますか?そうすれば、XAMLインテリセンスでまだ利用できるようです。ここで何が欠けていますか?

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

jquery - drupal7はajaxコンテンツに動作をアタッチします

だから...私はajaxを介してノードフォームを別のページにロードします。私はこのような振る舞いを付けようとします:

問題は何も起こらないということです。フォームには動作が添付されていません(オートコンプリート、折りたたみ可能なフィールドセット、ドラッグ可能なテキストエリアなど)

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

c# - .NET フレームワークには、添付されたプロパティまたは添付された動作が組み込まれていますか?

Microsoft コード (.NET Framework) に、添付されたプロパティと添付された動作を示すファイルがあるかどうか、基本的に興味があります。私はインターネット上に数多くの例があることを知っていますが、Microsoft がどのようにコーディングしているかを知りたいと思っています。

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

data-binding - 選択したアイテム(MVVM、SL5)のObservableCollectionへの複数のビューでのバインド

Silverlight 5でMVVMを使用しています。達成したいのはListBox、あるビュー(ListView.xamlなど)でアイテムを選択し、選択したアイテムをListBox別のビュー(SelectionView.xamlなど)で表示することです。

私が選択したアイテムは、この回答で説明されているように、添付された動作を介して作成されたObservableCollection<MyItem>(と呼ばれる)にありますSelectedItems

問題は、2つの異なるXAMLファイルを使用していることのようです。選択が行われる同じXAMLファイルでにをバインドするListBoxと、アイテムは同じビューの別のファイルに問題なく表示されます。しかし、別のファイルでは、空のままです。SelectedItemsListBoxListBox

どちらのビューもViewModelDataContextと同じものを使用します。

私は正しい方向へのいくつかの指針について非常にうれしいです。私はSLを初めて使用するので、明らかな何かが欠けている可能性があります。

これは機能するコードです:

ListView.xaml

そしてこのコードは空のリストボックスを与えるだけです:

SelectionView.xaml

PS:構文の強調表示はlanguage-all:lang-xmlに設定されていますが、機能していないようです。