2012-05-16 54 views
0

我有一个字典集合,我需要将它绑定到Silverlight ListBox。我无法使用Key值绑定到ListBox。 下面是示例代码..我得到空记录 字典后面的代码..将字典集合绑定到Silverlight中的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

这里是字典..字典>()bookItem =新词典>(); – srikanth

回答

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> 
+0

Shawn ..谢谢你的回复。 – srikanth

+0

Shawn ..谢谢你的回复。我的Book类有三个属性:BookId,BookName,BookTitle。字典集合键是DayOfWeek,值是列表。现在我需要将它绑定到GridView中的列表框。网格视图colums是书名,书名,星期五,星期六,星期日,星期一,星期二,星期四。现在,绑定到星期五至星期四列的书籍项目应基于词典的关键字(其中包含绑定的日期)。如果你了解我的解释,请告诉我。再次感谢您的时间。 – srikanth

+0

不确定你想要如何显示数据,但我已经更新了我的答案,尝试将你的评论多一点。希望这可以帮助。 –

相关问题