我有一个字典集合,我需要将它绑定到Silverlight ListBox。我无法使用Key值绑定到ListBox。 下面是示例代码..我得到空记录 代码背后的字典..
Dictionary<DayOfWeek, List<Book>> bookItem = new Dictionary<DayOfWeek, List<Book>>();
<ListBox x:Name="ListValues" ItemsSource="{Binding bookItem}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding BookName[Tuesday]}"></TextBlock>
<TextBlock Text="{Binding BookDesc[Tuesday]}"></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
答案 0 :(得分:1)
IDictionary.GetEnumerator返回KeyValuePair<TKey, TValue>
的集合。因此,为了绑定到您的对象,您需要使用KeyValuePair上的属性。
以下是如何显示数据的示例。
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
</Grid>
<!-- Display the day of week in the first column -->
<TextBlock Text="{Binding Current.Key}"/>
<!-- Display the books in the second column -->
<GridView Grid.Column="1" ItemsSource="{Binding Current.Value}" />
</DataTemplate>