ListView の DataTemplate でバインドが機能しないという問題があります。私のバインディング ターゲットは KeyValuePair です。(私は Windows 8 用の Metro アプリを使用しています)
私は辞書を持っています
Params = new Dictionary<string, string>();
Params.Add("Key1", "Value1");
Params.Add("Key1", "Value2");
私はそれをバインドしてみます:
<ListView ItemsSource="{Binding Params}">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Key}"></TextBlock>
<TextBlock Text="{Binding Value}"></TextBlock>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
しかし、KeyPairValue はこれに反応しません (何もバインドしません)。しかし、私がそのバインディングを行う場合:
<ListView ItemsSource="{Binding Params}">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}"></TextBlock>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
そうですか:
初期のこのバインドは、Windows Phone 7 のアプリで正しく機能します。Windows 8 ではどうなりましたか?