在WPF中,我有一个网格(Grid),其中定义了许多列,并且每个列的宽度都绑定到DataGrid列的宽度,如下所示:
当我运行程序并手动调整列宽时,我可以看到网格列(ShowGridLines = true)调整大小,并且与特定网格列相关的元素会适当移动。
然而,当我尝试在代码中添加数据网格和网格列时,无法使绑定工作(没有绑定错误)。以下是一个例子:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding ElementName=dataGrid, Path=RowHeaderWidth}" />
<ColumnDefinition Width="{Binding ElementName=Column0, Path=ActualWidth}" />
<ColumnDefinition Width="{Binding ElementName=Column1, Path=ActualWidth}" />
Etc.
<Controls:DataGrid BorderBrush="White" ItemsSource="{Binding DataTable}"
Name="datagrid1" Grid.Row="2" RowHeaderWidth="0">
<Controls:DataGrid.Columns>
<Controls:DataGridTextColumn Header="Included" Width="50" x:Name="Column0" />
<Controls:DataGridTextColumn Header="First" Width="100" x:Name="Column1" />
Etc.
当我运行程序并手动调整列宽时,我可以看到网格列(ShowGridLines = true)调整大小,并且与特定网格列相关的元素会适当移动。
然而,当我尝试在代码中添加数据网格和网格列时,无法使绑定工作(没有绑定错误)。以下是一个例子:
binding = new Binding()
{
Source = dataGrid.Columns[col],
Path = new PropertyPath("ActualWidth"),
Mode = BindingMode.OneWay,
};
colDef.SetBinding(WidthProperty, binding);
我尝试了其他变体(例如,ElementName =“DataGridColumn1”,Path = new PropertyPath(“ActualWidth”)),但要么没有错误(也没有绑定),要么出现“无法找到绑定源”的错误或BindingExpression路径错误。
一定有一种方法可以在代码中设置绑定...?