我是WPF的新手,我真的想尽可能地自己弄明白......
我已创建了我的第一个DataGrid控件,并且我尝试使用以下字符串列表填充它:
<UserControl x:Class="DataGridTest"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid Style="{StaticResource ContentRoot}">
<DataGrid Name="MyDataGrid" ItemsSource="{Binding}" HorizontalAlignment="Stretch" Height="500"/>
</Grid>
</UserControl>
Private Sub DataGridTest_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
Dim StringCollection As List(Of String) = New List(Of String)
StringCollection.Add("Test")
StringCollection.Add("Test1")
StringCollection.Add("Test2")
StringCollection.Add("Test3")
StringCollection.Add("Test4")
MyDataGrid.DataContext = StringCollection
End Sub
然而,它实际上填充了标题&#34;长度&#34;和值作为字符串的长度。为什么不填充字符串值呢?
很明显,我在这里遗漏了一些基本的东西,但我不能为我的生活弄清楚它是什么。提前致谢!
答案 0 :(得分:12)
因为默认情况下DataGrid
会自动生成给定项类的列,所以它会在String
类中搜索可以转换为列的属性。您可以通过创建自己的列并关闭AutoGenerateColumns
<DataGrid Name="MyDataGrid" ItemsSource="{Binding}" ... AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding}" Header="Something"/>
</DataGrid.Columns>
</DataGrid>