我是 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
但是,它实际上填充了标题“长度”和值作为字符串的长度。为什么它本身不填充字符串值?
很明显,我在这里遗漏了一些基本的东西,但我一生都无法弄清楚它是什么。
提前致谢!
最佳答案
因为DataGrid
默认情况下,自动从给定的项目类生成列,因此它将在 String
中搜索属性它可以转换为列的类。您可以通过创建自己的列并关闭 AutoGenerateColumns
来避免这种情况。
<DataGrid Name="MyDataGrid" ItemsSource="{Binding}" ... AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding}" Header="Something"/>
</DataGrid.Columns>
</DataGrid>
关于WPF DataGrid 绑定(bind)到 string.Length 而不是字符串文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25556613/