Wpf Datagrid:从代码中调整列大小

时间:2014-05-10 09:29:23

标签: c# .net wpf wpfdatagrid

在WPF中我有一个数据网格,填充了一个ItemSource:

myDataGrid.ItemsSource = myData;

我想将列0的宽度设置为特定宽度。如果我输入此代码:

var tmp = myDataGrid.Columns;

为什么tmp为null? 如何从代码后面调整特定列的大小?

我放了一个图片示例:数据源是" newListModel"有4行,每个项目有3列。如果我尝试获取列0,我会得到一个异常超出范围

enter image description here

我在XAML中只有这个用于datagrid的定义:

<DataGrid x:Name="dataGridListe" HorizontalAlignment="Left" Margin="10,303,0,0" VerticalAlignment="Top" Height="155" Width="676" CanUserAddRows="False" MouseDoubleClick="dataGridListe_MouseDoubleClick"/>

由于

1 个答案:

答案 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;