問題タブ [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 に答える
4528 参照

wpf - 新しいプロジェクトで AttachedCommandBehavior を使用するには?

この AttachedCommandProjectをダウンロードして実行したところ、うまく動作しました。たとえば、MouseDown コマンドを Border 要素に配置し、ViewModel のコマンドでそれを処理できます。

この AttachedCommand 機能MVVM Visual Studio Templateに追加したいと思います。

必要なすべてのファイルを MVVM プロジェクトの my Commands フォルダーにコピーしました。

しかし、元のプロジェクトと同じ構文で使用しようとすると、The property 'CommandBehavior.Event' does not exist in XML namespace 'clr-namespace:MvvmWithAttachedBehaviors.Commands'. というエラーが表示されます。.

私が見る限り、コピーするファイルや追加する参照は他にありません。

このエラーは何を伝えようとしているのでしょうか? この AttachedCommandBehavior 機能を他のプロジェクトで使用できるようになった人はいますか?

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

wpf - 添付された 2 つの動作を 1 つの XAML 要素にアタッチするにはどうすればよいですか?

ここにあるアタッチされたコマンドの動作パターンを実装しました。たとえば、Border に ViewModel で発生する左クリックまたは右クリックのイベントを許可するのにうまく機能します。

XAML:

コードビハインド:

ただし、2 つの添付された動作を 1 つの要素にアタッチするにはどうすればよいですか。たとえば、次のようなことをしたいのですが、もちろんエラーが発生します。

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

wpf - MVVMでComboBoxSelectionChangedをどのように処理しますか?

純粋なMVVMを実行している場合、コードビハインドに戻らずにComboBox SelectionChangedイベントをどのように処理しますか?

たとえば、 AttachedBehaviorsを試しましたが、Event = "SelectedChanged"はサポートされていません:

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

c# - WPF のカスタム添付イベント

ここで用語を間違っているかもしれませんが、添付イベントを作成しようとしていると思います。

Surface SDK では、次のようなことができます。

同様にXAMLでハンドラーを追加できるカスタムイベントを作成したいのですが、うまくいきません。

カスタム ルーティング イベントを作成できますが、XAML インテリセンスでは認識されず、定期的に入力するだけではイベント ハンドラーが追加されません。これが私のイベント定義です:

私はそれについてすべて間違っていますか?私が目にするすべての「添付動作」の例は、添付プロパティを追加し、そのプロパティを設定する要素を操作することに関するものです。

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

c# - 添付されたプロパティ、コマンドなどの MVVM WPF アプリのボイラープレート コードを削減しますか?

私はWPF MVVMアプリケーションに取り組んでいます。私が気づいたことは、(WPF チームの MVVM ツールキットの DelegateCommands を介して) コマンド、添付プロパティ、および添付ビヘイビアを宣言するためだけに、非常に多くのボイラープレート コードを書かなければならないことです。記述しなければならない定型コードの量を減らすために利用できる戦略はありますか?

ありがとう!

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

wpf - WPF - ファイル ブラウザが添付された動作でランダムにハングする

このように定義された添付の動作があります..

これは、テキスト ボックスをクリックすると OpenFileDialog が開き、完了したらファイル名をボックスに入力する、単純な添付ビヘイビアです。

おそらく 40% の時間は機能しますが、残りの時間はアプリ全体がハングします。この時点でのコール スタックは次のようになります。

WindowsBase.dll!MS.Win32.UnsafeNativeMethods.GetMessageW(ref System.Windows.Interop.MSG msg, System.Runtime.InteropServices.HandleRef hWnd, int uMsgFilterMin, int uMsgFilterMax) + 0x15 バイト
WindowsBase.dll!System.Windows.Threading. Dispatcher.GetMessage(ref System.Windows.Interop.MSG msg, System.IntPtr hwnd, int minMessage, int maxMessage) + 0x48 バイト WindowsBase.dll!System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame フレーム= {System.Windows.Threading.DispatcherFrame}) + 0x8b バイト WindowsBase.dll!System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame フレーム) + 0x49 バイト
WindowsBase.dll!System.Windows.Threading. Dispatcher.Run() + 0x4c バイト
PresentationFramework.dll!System.Windows.Application.RunDispatcher (オブジェクト無視) + 0x1e バイト
PresentationFramework.dll!System.Windows.Application.RunInternal(System.Windows.Window ウィンドウ) + 0x6f バイト PresentationFramework.dll!System.Windows.Application. Run(System.Windows.Window ウィンドウ) + 0x26 バイト PresentationFramework.dll!System.Windows.Application.Run() + 0x19 バイト Debugatron.exe!Debugatron.App.Main() + 0x5e バイト C# [Managed Transition にネイティブ]
[管理からネイティブへの移行]
mscorlib.dll!System.AppDomain.nExecuteAssembly(System.Reflection.Assembly アセンブリ、string[] args) + 0x19 バイト mscorlib.dll!System.Runtime.Hosting.ManifestRunner.Run(bool checkAptModel) + 0x6e バイト mscorlib.dll!System .Runtime.Hosting.ManifestRunner.ExecuteAsAssembly() + 0x84 バイト mscorlib.dll!System.Runtime.Hosting.ApplicationActivator.CreateInstance(System.ActivationContext activationContext, string[] activationCustomData) + 0x65 バイト mscorlib.dll!System.Runtime.Hosting. ApplicationActivator.CreateInstance(System.ActivationContext アクティベーションコンテキスト) + 0xa バイト mscorlib.dll!System.Activator.CreateInstance(System.ActivationContext アクティベーションコンテキスト) + 0x3e バイト
Microsoft.VisualStudio.HostingProcess.Utilities.dll!Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone() + 0x23 バイト
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(オブジェクトの状態) + 0x66 バイト
mscorlib.dll!System.Threading. ExecutionContext.Run(System.Threading.ExecutionContext executionContext、System.Threading.ContextCallback コールバック、オブジェクトの状態) + 0x6f バイト
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() + 0x44 バイト

さて、非同期処理を行っているときにこの種のことを見たことがありますが、その時点では何も起こっていません。生きているスレッドは UI スレッドだけです。また、ハングしたときは常に最後のデバッグステートメントを取得します。

誰かが私を正しい方向に向けることができますか? これは私を狂わせる !

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

wpf - 添付プロパティとバインディング

クラスの通常のプロパティを設定するために、添付の動作を作成しています。

ここで、MyControlのItemsSourceプロパティは通常のプロパティであるため、Xamlでバインドできないため、このアタッチされた動作になります。

これで、文字列またはオブジェクトを使用してこの添付プロパティを使用すると機能し、設定したブレークポイントがヒットしますが、バインディングマークアップを使用して設定すると、実行されません。なぜこれが機能しないのですか?

私がする必要があるのは、ItemsSourceプロパティをBindingで指定された値に設定することです。

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

wpf - xaml プロパティを公開するには?

ComboBox サブクラスを作成し、機能を追加しました。

ここで、たとえば TextBox の外部プロパティを公開したいと思います。

これは可能ですか。間違った特定のプロパティを選択したのではないかもしれませんが、私の言いたいことは理解できたと思います。

これは可能ですか?
すべてのプロパティを個別に作成する必要がありますか?

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

wpf - 添付されたビヘイビア wpf の単体テスト

私はまだ添付されたビヘイビアを一般的に理解していて、単体テストを書く方法を見て途方に暮れています。

以下に、Sacha Barber の Cinch フレームワークのコードをいくつか貼り付けました。これにより、添付された動作を介してウィンドウを閉じることができます。誰かが単体テストの例を見せてもらえますか?

ありがとう!
ベリル