Wpf DataGrid列标题的双向数据绑定宽度
我有一个树状视图,其中包含一些基于DataGrid的列标题。现在,我想将这些标题列的宽度绑定到TreeView中的列的宽度。下面是一个例子Wpf DataGrid列标题的双向数据绑定宽度,wpf,data-binding,datagrid,Wpf,Data Binding,Datagrid,我有一个树状视图,其中包含一些基于DataGrid的列标题。现在,我想将这些标题列的宽度绑定到TreeView中的列的宽度。下面是一个例子 <DataGrid> <DataGrid.Columns> <DataGridTextColumn Header="Name" Width="{Binding NameColumnWidth, Mode=TwoWay}" IsReadOnly="True"></DataGridTextColu
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Width="{Binding NameColumnWidth, Mode=TwoWay}" IsReadOnly="True"></DataGridTextColumn>
<DataGridTextColumn Header="Age" Width="{Binding AgeColumnWidth, Mode=TwoWay}" IsReadOnly="True"></DataGridTextColumn>
<DataGridTextColumn Header="Address" Width="{Binding AddressColumnWidth, Mode=TwoWay}" IsReadOnly="True"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
<TreeView ItemsSource="{Binding VisibleStudents}">
<TreeView.ItemTemplate>
<DataTemplate>
<TreeViewItem ItemsSource="{Binding Path=Classes}">
<TreeViewItem.Header>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding NameColumnWidth}"></ColumnDefinition>
<ColumnDefinition Width="{Binding AgeColumnWidth}"></ColumnDefinition>
<ColumnDefinition Width="{Binding AddressColumnWidth}"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Border BorderThickness="1" BorderBrush="Black">
<TextBlock Text="{Binding Name}" />
</Border>
<Border BorderThickness="1" BorderBrush="Black">
<TextBlock Text="{Binding Age}" />
</Border>
<Border BorderThickness="1" BorderBrush="Black">
<TextBlock Text="{Binding Address}" />
</Border>
</Grid>
</TreeViewItem.Header>
<TreeViewItem.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding NameColumnWidth}"></ColumnDefinition>
<ColumnDefinition Width="{Binding AgeColumnWidth}"></ColumnDefinition>
<ColumnDefinition Width="{Binding AddressColumnWidth}"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Border BorderThickness="1" BorderBrush="Black">
<TextBlock Text="{Binding Name}" />
</Border>
<Border BorderThickness="1" BorderBrush="Black">
<TextBlock Text="{Binding Age}" />
</Border>
<Border BorderThickness="1" BorderBrush="Black">
<TextBlock Text="{Binding Address}" />
</Border>
</Grid>
</DataTemplate>
</TreeViewItem.ItemTemplate>
</TreeViewItem>
</DataTemplate>
</TreeView.ItemTemplate>
</TreeView>
启动项目时,出现以下错误:
System.Windows.Data错误:2:找不到治理框架元素
或目标元素的FrameworkContentElement。
BindingExpression:Path=NameColumnWidth;DataItem=null;目标元素
是“DataGridTextColumn”(HashCode=38694667);目标属性为
“宽度”(类型“DataGridLength”)
datagrid的Itemsource未设置?不,我只是硬编码这些值,因为datagrid不需要数据,因为我只使用它来显示列。