尝试将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
为什么呢?以及如何绑定到词典?
答案 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>