.NetFramework 3.5 & WPF (7)

公開:2008-01-24 21:25
更新:2020-02-15 04:36
カテゴリ:windows

WPFデータバインドで、Pathにインデクサ表記ができるのか、サブプロパティアクセスは可能なのかを調べていた。
リファレンスにそのことが書いてあった。
http://msdn2.microsoft.com/ja-jp/library/system.windows.data.binding.path.aspx
以下リファレンスより引用

特に単純な使用例では、Path プロパティ値は Path=PropertyName など、バインディングに使用するソース オブジェクトのプロパティの名前になります。

プロパティのサブプロパティは、C# で使用される構文と同様の構文によって指定できます。たとえば、Path=ShoppingCart.Order 句は、オブジェクトまたはプロパティ ShoppingCart のサブプロパティ Order へのバインディングを設定します。

添付プロパティにバインドするには、添付プロパティをかっこで囲みます。たとえば、添付プロパティ DockPanel..::.Dock にバインドする構文は、Path=(DockPanel.Dock) です。

プロパティのインデクサは、インデクサが適用されるプロパティ名の後に続く角かっこ内に指定できます。たとえば、Path=ShoppingCart[0] 句は、プロパティの内部のインデックスのリテラル文字列 "0" の処理方法に対応するインデックスにバインディングを設定します。複数のインデクサもサポートされています。

インデクサとサブプロパティは、Path 句に混在させることができます。たとえば、Path=ShoppingCart.ShippingInfo[MailingAddress,Street] のように使用できます。

インデクサの内側では、複数のインデクサ パラメータをコンマ (,) で区切って指定できます。各パラメータの型は、かっこを使用して指定できます。たとえば、Path="[(sys:Int32)42,(sys:Int32)24]" のように指定します。ここで、sys は System 名前空間にマップされます。