1

XAML でオブジェクトにバインドされている要素を見つけてアクセスするにはどうすればよいですか?

編集:EmployeeViewModelに割り当てられた がEmployeeViewありDataContextEmployeeModel内部にがあるとしましょうEmployeeViewModel。モデルのどのプロパティがビューのフレームワーク要素 (コントロール) にバインドされているかを知りたいです。また、モデルのプロパティにバインドされている各コントロールにアクセスしたい.

4

2 に答える 2

2

リフレクションを使用してプロパティをループし、各プロパティで FrameworkElement.GetBindingExpression を使用して、特定の Framework 要素のすべてのバインディングを構築できます。

http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.getbindingexpression

于 2012-07-14T16:18:22.230 に答える
2

更新: SaberAmani がモデルに検証を追加し、検証の概要を表示しようとしているという点で質問が明確になったことに照らして..以下のリンクを参照してください。

http://msdn.microsoft.com/en-us/magazine/ff714593.aspx

http://codeblitz.wordpress.com/2009/05/12/wpf-validation-summary-control/

http://wpfvalidation.codeplex.com/

http://f10andf11.blogspot.co.uk/2012/02/wpf-validation-summary-control.html


バインディングを発見したい人の参考のために:

XAML が WPF、Silverlight、Metro、Phone7 のいずれにあるかについては言及していません (したがって、できることがより制限される可能性があります)。

あなたが望むことをするためのいくつかの可能な方法があるようです:

  1. 反射
  2. MarkupObject / MarkupWriter
  3. TypeDescriptor+DependencyPropertyDescriptor
  4. カスタム バインディング マークアップ拡張機能

このリンクを見てください。

彼はリフレクションを使用し、これが古典的な方法であると示唆していますが、別の可能性として MarkupWriter についても言及しています。注: リフレクション メソッドは、バインディングを持つ可能性のある添付プロパティを検出しません。

ここに MarkupWriter を使用するリンクがいくつかあります...これにより、添付されたプロパティを見つけることができます。

関連リンク:

于 2012-07-18T13:00:18.513 に答える