4

XAMLでは、中括弧を含む文字列を使用して属性値を指定できます。これは、 Bindingインスタンスを作成し、それをTextBox要素のTextプロパティに割り当てる例です。

<TextBox Text="{Binding ElementName=Foo, Path=Bar}"/>

XAMLを拡張して、開発者がこれを有効なものとして入力できるようにします...

<TextBox Text="{MyCustomObject Field1=Foo, Field2=Bar}"/>

これにより、クラスのインスタンスが作成され、Field1/Field2プロパティが適切に設定されます。これは可能ですか?もしそうなら、どのようにそれをしますか?

これが可能であれば、フォローアップの質問があります。文字列"{BindingElementName = Foo、Path = Bar}"を取得して、フレームワークに処理して指定したBindingインスタンスを返すように依頼できますか?上記のXAMLを機能させるには、これをすでにどこかで実行する必要があるため、同じ処理を要求する方法が必要です。

4

2 に答える 2

2

BindingクラスはMarkup Extensionです。から派生させることで、独自に記述できますSystem.Windows.Markup.MarkupExtension

ElementNameオブジェクトのPath単なるプロパティです。Binding

Bindingフォローアップに関しては、オブジェクトをインスタンス化することで新しいコードを作成できBindingます。文字列を処理する方法がわかりません。

于 2008-09-22T10:43:32.787 に答える
1

markupextensionshttp://blogs.msdn.com/wpfsdk/archive/2007/03/22/blogpost-text-creatingasimplecustommarkupextension.aspxをご覧 ください

于 2008-09-22T10:36:49.573 に答える