ListView绑定与KeyValuePair的ObservableCollection

时间:2013-10-09 09:01:36

标签: listview windows-8 windows-runtime microsoft-metro winrt-xaml

朋友您好我在TextBlock中显示文本的问题,这是在ListView Datatemplate中定义的,这里是我的listview的代码。

<ListView Grid.Row="1" Margin="-2,0,0,-5" Padding="0" ItemContainerStyle="{StaticResource  listviewItemSampleStyleWithNoselection}" ItemsSource="{Binding lst}" SelectionMode="None" >
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <Button FontSize="15" BorderThickness="0" Background="#8A69A7"  >
                                <Button.ContentTemplate>
                                    <DataTemplate>
                                        <StackPanel Orientation="Horizontal" VerticalAlignment="Top" Background="#8A69A7" >
                                            <TextBlock Text="{Binding Path=Value}" FontSize="15" VerticalAlignment="Center" />
                                            <TextBlock x:Name="btnremoveSubject" Margin="10,0,-5,0" VerticalAlignment="Center" Padding="0" FontSize="15" Text="&#xE10A;" FontFamily="Segoe UI Symbol" Width="20" Height="18" HorizontalAlignment="Center"  Foreground="White" FontWeight="Thin" />
                                        </StackPanel>
                                    </DataTemplate>
                                </Button.ContentTemplate>
                            </Button>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                    <ListView.ItemsPanel>
                        <ItemsPanelTemplate>
                            <VirtualizingStackPanel Orientation="Horizontal" />
                        </ItemsPanelTemplate>
                    </ListView.ItemsPanel>
                </ListView>

这里是我的ObservableCollection类型KeyValuePair这里它的定义..

  public ObservableCollection<KeyValuePair<string,string>> lst { get; set; }

lst中的所有项目都已填充了键和值。那么请你们指导我做了什么样的帮助和建议表示赞赏。

1 个答案:

答案 0 :(得分:1)

WinRT有bug。您无法绑定Dictionary<T,V>ObservableCollection<KeyValuePair<T, V>>IEnumerable<KeyValuePair<T, V>>。您只有一个选择是使用属性作为类的成员。

您还可以使用简单转换器进行测试,以检查绑定是否发生。

Binding a Dictionary to a WinRT ListBox

Submitted bug