绑定到WPF中的集合

时间:2013-11-01 21:55:28

标签: wpf

尝试将DataGrid绑定到List或Dictionary时遇到问题。 如果我将DataContext设置为一个对象,并将ItemSource设置为该对象的List属性,我会使用List计数填充DataGrid,如果是List,为什么?如何正确绑定到List,以及如何使用Dictionary?

List<string> con = new List<string>();
        con.Add("aaaddd");
        con.Add("bbb");
        this.DataContext = con;

<DataGrid AutoGenerateColumns="True" Height="104" HorizontalAlignment="Left"          Margin="34,171,0,0" Name="dg" VerticalAlignment="Top" Width="421" ItemsSource="{Binding}"/>

我填充了

长度 6 3

为什么呢?以及如何绑定到词典?

2 个答案:

答案 0 :(得分:1)

正如评论中所述,我认为您正在引用WPF的DataGrid控件 如果您将列表对象设置为DataContext,那么只需ItemsSource="{Binding}",这将绑定到您的列表对象DataContext根。

答案 1 :(得分:1)

问题是您已在dataGrid上将AutoGenerateColumns设置为True

当AutoGenerateColumns设置为true而根据基础对象公开的属性自动生成列时,字符串仅显示单个属性,即的长度

如果要获取字符串的值,则需要将该属性设置为false并提供自己的列集合。这将有效 -

    <DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Value"
                                IsReadOnly="True"
                                Binding="{Binding}"/>
        </DataGrid.Columns>
    </DataGrid>