【问题标题】:Bind Dictionary Collection to ListBox in Silverlight在 Silverlight 中将字典集合绑定到 ListBox
【发布时间】:2012-05-16 22:16:10
【问题描述】:

我有一个字典集合,我需要将它绑定到 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>

【问题讨论】:

  • 这里是字典.. Dictionary>() bookItem = new Dictionary>();

标签: c# silverlight


【解决方案1】:

IDictionary.GetEnumerator 返回KeyValuePair&lt;TKey, TValue&gt; 的集合。因此,为了绑定到您的对象,您需要使用 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>

【讨论】:

  • 肖恩.. 感谢您的回复。 My Book 类具有三个属性:BookId、BookName、BookTitle。字典集合键是 DayOfWeek,值是 List。现在我需要将它绑定到 Gridview 内的列表框。网格视图列是书名、书名、周五、周六、周日、周一、周二、周四。现在绑定到Fri .. to Thu 列的书籍项目应该基于字典的键(其中包含要绑定的日期)。如果您理解我的解释,请告诉我。再次感谢您的宝贵时间。
  • 不确定您希望如何显示数据,但我已经更新了我的答案以尝试更多地匹配您的评论。希望这会有所帮助。
  • Shawn 这是我的网格视图的示例。现在我希望根据字典集合中的键将 TextBlock 的 BookId 和 BookName 显示在周列上。假设对于键包含 [Tuesday] 的某些行,它们应该绑定到周二列中的 ListBox。如果键是 [Friday],那么它们应该绑定到周五列。我知道这很难理解/解释..我尽力解释了
猜你喜欢
  • 2014-05-03
  • 2015-01-16
  • 1970-01-01
  • 1970-01-01
  • 2010-12-03
  • 2011-04-07
  • 2011-02-10
  • 2015-09-01
  • 2011-12-03
相关资源
最近更新 更多