ListViewのItemTemplateでバインディングを取得する際に問題が発生しました。私のバインディングターゲットはKeyValuePairです。次のコード:KeyValuePairのItemTemplateでのバインドが機能しない
XAML:
<ListView x:Name="listViewDataItems" CanDragItems="True" DragItemsStarting="event" SelectionMode="Multiple">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Key}"/>
<TextBlock Text=":"/>
<TextBlock Text="{Binding Path=Value}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
のC#:
protected override void OnNavigatedTo(NavigationEventArgs e) {
if (e.Parameter != null) {
IDataSourceExtension extension = (IDataSourceExtension)e.Parameter;
pageTitle.Text = extension.Name;
// Type of LastData: List<KeyValuePair<string,object>>
listViewDataItems.ItemsSource = extension.LastData;
}
}
のItemsSourceが細かい設定やKeyValuePairsが含まれていますが、リストビュー内のキーと値を表示すると、動作していませんさ。私はメトロスタイルのアプリで.Net4.5 Betaの下で働いています。
私は両方を試みましたが、機能しませんでした。 PropertyChanged()、ObservableCollectionと呼ばれるリストのセッターは役に立ちません。アイテムを1つ1つ設定することはあまりにも助かりません。コードを修正し、LastDataの代わりにコレクションのLvItemsを編集しましたが、表示されません。 –
DataContextを正しく設定していますか?あなたの正確なXAMLと一緒に投稿した例は私のコンピュータ上で動作します。 –
私はそう思います、私はxaml ListViewコード 'ItemsSoruce = {Binding}'を追加し、c# 'listViewData.DataContext = extension.LastData;'で設定しました。それでも正しい数の項目が表示されますが、 ':'ではなく 'key:value'のみが表示されます。あなたは.net4.5ベータ版でそれをテストしましたか? –