C# 在Silverlight中将字典集合绑定到列表框
我有一本字典集,我需要将它绑定到Silverlight ListBox。我无法使用键值绑定到ListBox。 下面是示例代码。。我的记录是空的 隐藏在代码中的字典C# 在Silverlight中将字典集合绑定到列表框,c#,silverlight,C#,Silverlight,我有一本字典集,我需要将它绑定到Silverlight ListBox。我无法使用键值绑定到ListBox。 下面是示例代码。。我的记录是空的 隐藏在代码中的字典 Dictionary<DayOfWeek, List<Book>> bookItem = new Dictionary<DayOfWeek, List<Book>>(); <ListBox x:Name="ListValues" ItemsSource="{Binding book
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>
Dictionary bookItem=new Dictionary();
IDictionary.GetEnumerator返回KeyValuePair
的集合。因此,为了绑定到对象,需要使用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>
这是字典。。Dictionary()bookItem=新建Dictionary();肖恩。。谢谢你的回复。我的Book类有三个属性:BookId、BookName、BookTitle。Dictionary collections键是DayOfWeek,值是List。现在我需要将它绑定到Gridview中的列表框。栅格视图栏包括书名、书名、周五、周六、周日、周一、周二、周四。现在,书籍项目绑定到Fri列。。to Thu应基于字典的键(其中包含要绑定的日期)。如果你明白我的解释,请告诉我。再次感谢您的时间。我不确定您希望如何显示数据,但我已更新了我的答案,以尝试与您的评论更匹配。希望这能有所帮助。Shawn这是我的网格视图示例。。现在,我希望TextBlock的BookId和BookName按照Dictionary集合中的键显示在Week列上。假设某些行的键包含[星期二],那么它们应该绑定到星期二列中的列表框。。如果键是[Friday],那么它们应该绑定到Friday列。我知道这很难理解/解释。。我尽力解释