0

辞書コレクションがあり、Silverlightリストボックスにバインドする必要があります。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>
4

1 に答える 1

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>
于 2012-05-16T22:34:57.630 に答える