myDataGrid.ItemsSource = myData;
我想将列0的宽度设置为特定宽度。如果我输入此代码:
var tmp = myDataGrid.Columns;
为什么tmp为null? 如何从代码后面调整特定列的大小?
我放了一个图片示例:数据源是" newListModel"有4行,每个项目有3列。如果我尝试获取列0,我会得到一个异常超出范围
我在XAML中只有这个用于datagrid的定义:
<DataGrid x:Name="dataGridListe" HorizontalAlignment="Left" Margin="10,303,0,0" VerticalAlignment="Top" Height="155" Width="676" CanUserAddRows="False" MouseDoubleClick="dataGridListe_MouseDoubleClick"/>
由于
答案 0 :(得分:1)
您必须在XAML中定义列,同时将AutoGenerateColumns设置为False。
<DataGrid x:Name="dataGridListe" VerticalAlignment="Top" AutoGenerateColumns="False" >
<DataGrid.Columns>
<DataGridTextColumn Header="YourProperty1" Binding="{Binding Path=YourProperty1}"/>
<DataGridTextColumn Header="YourProperty2" Binding="{Binding Path=YourProperty2}"/>
....
</DataGrid.Columns>
</DataGrid>
然后,您需要指定列的索引
DataGridColumn column = dataGridListe.Columns[0];
column.Width = 200;