問題タブ [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 投票する
1 に答える
505 参照

wpf - WPF/WP7 Attached Behaviors - 関連付けられたオブジェクトのイベントを発生させる前に実行する

私は、WPF/WP7 Silverlight でアタッチされたビヘイビアーについて学ぼうとしていますが、誰かが検討できるかどうか疑問に思った概念的な障害に直面しました。

私が作成しようとしている機能の例は次のとおりです: ユーザーが Click ハンドラーがナビゲーションをトリガーするボタン (つまり、NavigationContext.Navigate()) をクリックすると、ナビゲーションが実際に発生する前に、ボタンでアニメーションが発生します。不透明度を 1 から 0 に減らします (「フェードアウト」効果)。

したがって、順番に:

  1. ユーザーがボタンをクリックする
  2. ボタンはアニメーションを実行します
  3. ナビゲーションが発生します

簡単ですよね?次のようなアタッチされた動作を作成しました。

ボタンがあるページの .xaml.cs にナビゲーションをトリガーする Click ハンドラーが含まれていない場合、これは明らかに正常に機能しますが、それを接続すると、ナビゲーションが発生する前にアニメーションが完了しません。もちろん、これがなぜなのかは理解していますが、これを達成する方法があり、ひどいデザインではないという素晴らしい特性も示しているのではないかと考えています.

一見関連しているこのSOスレッドを見つけましたが、受け入れられた答えは本当にこれを行う唯一の方法ですか?

ご協力いただきありがとうございます。

編集: たまたま WP7 を持っていて、これを理解しようと必死になっている場合、Reddit リーダー アプリ「Baconit」は、ストーリーのタイトルをクリックしたときに、私が興味を持っているものと同様の動作を示します。

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

wpf - IsDisabled 添付プロパティ

「IsDisabled」のような既知のプロパティにプロパティをアタッチするにはどうすればよいですか? たとえば、コントロールが無効になっているときに、別のプロパティが引き継いでいくつかのことを変更したいと考えています。

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

wpf - コマンド動作が付加されたツリービュー イベント

ACB ( http://marlongrech.wordpress.com/2008/12/04/attachedcommandbehavior-aka-acb/ )を使用してツリービューでイベントを処理したい。

XAML ファイルのバインディングに行き詰まっています。イベントは発生しますが、ストラテジーが null であるため、ACB ライブラリで null 参照例外が発生し続けます。

XAML ファイルに以下を追加しました (抜粋):

そして、私が追加したViewmodelで:

誰がバインディングを手伝ってくれますか?

よろしく、

ミシェル

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

c# - MouseDragElementBehavior のドラッグ イベントを処理する MVVM

この質問は何をすべきかを言葉で教えてくれますが、コードの書き方がわかりません。:)

私はこれをしたい:

しかし、他の質問が概説しているように、 EventTrigger は機能しません...ではなく でDragFinishedイベントを見つけたいからだと思います。あれは正しいですか?SomeUIElementMouseDragElementBehavior

だから私がやりたいことは次のとおりだと思います:

  • から継承する振る舞いを書くMouseDragElementBehavior
  • OnAttachedメソッドをオーバーライドする
  • イベントにサブスクライブしDragFinishedます...しかし、このビットを実行するためのコードがわかりません。

助けてください!:)

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

c# - トリガーのアタッチされた動作によりビルドエラーが発生する

コントロールテンプレートを使用したスタイルがあり、コンパイルに問題があります。アタッチされた動作をトリガーしようとしています。コントロールテンプレートトリガーに入れると正常に動作しますが、テキストボックストリガーに入れると、次のようなビルドエラーが発生します。

タイプ「TextBoxBehavior」で静的メンバー「SelectAllProperty」が見つかりません

これが私のコードです:

一方がビルドエラーを出し、もう一方がエラーを出さない理由について何か考えはありますか?

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

c# - WPF DataGrid でのドラッグ ドロップ行の動作

行を並べ替えるための添付の動作を作成しようとしていますDrag & Drop

私はいくつかの解決策を見つけ(Stackoverflowでグーグルで)、それらを使用して動作を作ろうとしています... Hordcodenet Webサイトから例を取りました(今はリンクがありません)

コード

ヘルパー クラス

/// /// 一般的な UI 関連のヘルパー メソッド。/// public static class UIHelpers {

}

OnMouseLeftButtonDown問題は、行を押してドラッグしてもイベントが呼び出されないことです...しかしOnMouseLeftButtonUp、その後呼び出されます....

これを行う方法はありませんか....

私は方法を見つけることができないようです

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

c# - WPFDataGridでの一般的なDragDropの動作

コレクションを取得するBehaviorDragDrop Beahviorを作成しました(ObservableCollection、LIstのようなIListの実装)

そして、その動作中のアルゴリズム...

しかし、 (Xamlバインディングで)CollectionViewSource.Viewを使用すると、動作が失敗します。

この動作を一般的にするにはどうすればよいですか(DataGridに接続されているデータソースのタイプに依存しないように)

IListインターフェースのメソッドを次のように使用しているので、それも可能ですか?

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

c# - Tab キーを押して ListBox に新しい項目を追加する

ListBox ItemTemplate のカスタム DataTemplate を持つ WPF ListBox があります (各項目には一連のコントロールがあります。つまり、テキスト ボックスと日付ピッカー)。ユーザーが PreviewKeyDown イベントのイベント ハンドラーで ICommand を実行できるようにする Behavior を最後の DatePicker にアタッチしました。

これは、ユーザーが ListBoxItem 内のコントロールを TAB で移動し、最後のコントロールに移動してもう一度 TAB を押すと、新しい ListBoxItem が ListBox に追加されるという考え方です。フォーカスは、次の ListBoxItem の最初のコントロールに移動します。ListBox に既に 2 つの項目があり、最初の項目をタブで移動している場合、私のソリューションは正常に機能します。ListBox に項目が 1 つしかなく、最後のコントロールに到達すると、新しい ListBoxItem が (予想どおり) 追加されますが、フォーカスは ListBox を超えて次の親コントロールに移動します。

Behavior コードが呼び出され、ICommand が呼び出されるようなものですが、新しい ListBoxItem が追加されるのを待たずに TAB イベントが続行されます。

助言がありますか?

私の行動(ZBehaviorBaseは「より良い」クリーンアップを可能にする単なるクラスです):

XAML:

INSIDE "LineTemplate":

コマンドの「実行」メソッドで行われる唯一のことは、ListBox の ItemsSource であるコレクションにオブジェクトが追加されることです。

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

wpf - WPFで30秒ごとにシェイクするボタンで画像をアニメーション化するにはどうすればよいですか?

スタイルやアニメーションを扱うのは苦手です。

ボタンのVisibilityがVisibility.Visibleに設定されている場合は常に、ボタンの唯一のコンテンツである画像を30秒ごとにシェイクするためのヘルプが得られることを望んでいました。

これは、ユーザーの注意を引き、ボタンをクリックするように促すことです。

私はすでにコントロールベンダーのスタイルを使用しているので、スタイルをいじる代わりに簡単に再利用できるように、これをImageに添付された動作として、または可能であればUIControlとして実行したいと思います。編集します。

これが私が使用した解決策であり、マークされた回答から導き出されたものです

これは、任意のSystem.Windows.Controls.Imageに適用できるアタッチされた動作です。

Xamlでの使用方法は次のとおりです。

アタッチされた動作の明確な定義については、System.Windows.Interactivity.Behaviorクラスの注釈を参照してください。ビヘイビアーには、オプションでアタッチされたプロパティを設定することもでき、非常に便利です。

添付プロパティの明確な定義については、MSDNの添付プロパティの概要を参照してください。アタッチされたプロパティは何でも実行でき、効果的な動作を引き起こすアクションをトリガーできるため、アタッチされた動作と見なすことができますが、技術的には、アタッチされたプロパティのままです。

アタッチされたプロパティは動作のように動作する可能性があるため、これらのタイプのアタッチされたプロパティをアタッチされた動作と呼ぶようになりましたが、実際には、動作から派生してアタッチされたプロパティのインタラクションに派生しない限り、実際にはアタッチされた動作ではありません。 。

WPF / Silverlightのほとんどのものと同様に、アタッチされた動作またはアタッチされたプロパティにブレンドは必要ありません。

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

wpf - このバインディングが機能しないのはなぜですか

いくつかの DropDownContent とブール値の IsOpen dp を公開して、ドロップダウン コンテンツを表示するかどうかを制御するサード パーティの SplitButton コントロールがあります。

DropDownContent が複数のボタンを持つ StackPanel である場合、各ボタンはビュー モデルのコマンドにバインドされます。そのコマンドを実行するだけでなく、ボタンをクリックすると、開いている DropDown コンテンツを閉じる必要があります。これは、以下の AttachedBehavior で行っています。

しかし、単純に祖先の SplitButton コントロールへの参照を取得する必要がある私のバインディングは機能しません。バインディングでは、SplitButton タイプの最初の Ancestor コントロールを検索しようとしていることがわかります。ただし、デバッグ情報には祖先レベル 1 と表示されているので、レベルを 4 まで変更しましたが、まだエラーが発生しています。

誰かが修正が何であるかを見ることができますか?

バインディングエラー

System.Windows.Data エラー: 4 : 参照 'RelativeSource FindAncestor、AncestorType='Xceed.Wpf.Toolkit.SplitButton'、AncestorLevel='1'' でバインディングのソースが見つかりません。BindingExpression:(パスなし); DataItem=null; ターゲット要素は 'CloseDropDownContentBehavior' (HashCode=8896066) です。ターゲット プロパティは 'DropDownButtonElement' (タイプ 'SplitButton') です。

xaml

付属の動作