XAML(特にUniversal Windowsプラットフォーム)では、インデクサのプロパティパス表記を使用して、インデックス付きプロパティにデータをバインドできます。標準のプロパティと同じプロパティパス構文を使用してxamlのインデックス付きプロパティにバインドすることはできますか?
次のように私はインデックス付きプロパティにバインドすることができますタイプDictionary<string,string>
のデータソースを考える:上記で
<TextBlock Text="{Binding Dictionary[Property]}"/>
を、TextBlockののDataContextのが辞書プロパティを持つオブジェクトに設定され、次のように言う:
public class DataObject
{
public Dictionary<string,string> Dictionary { get; } = new Dictionary<string,string> {["Property"]="Value"};
}
私の質問は、インデクサ表記を使わずにインデックス付きプロパティにバインドできますが、代わりに標準プロパティバインディングの構文を使用できますか?私の最初のテストから
すなわち
<TextBlock Text="{Binding Dictionary.Property}"/>
これは動作するようには思えません。それを動作させる簡単な方法はありますか?私はインデックス付きのプロパティ(この場合はDictionaryのようなものですが、単純なオブジェクトでもよい)を持つデータソースオブジェクトを使いたいと思います。私は動的なオブジェクトを使いたくない。
もっとコードが役立ちます。 'Dictionary'プロパティはどのように定義されていますか、' Property'とは何ですか? 'DataContext'はどのように設定されていますか? –
申し訳ありませんが、上記の名前はプレースホルダーを意図しています。したがって、上記のバインディングでは、DataContextは "Dictionary"という名前のDictionary型のプロパティを含むオブジェクトになります。 "プロパティ"は、その辞書のインデックスキーです。 –
stuart
実際の完全なコードを投稿すると、助けを得るチャンスが大幅に向上します。 :-) –