我有两个数据网格,每个网格一列。
第一的:
<DataGrid.Columns>
<DataGridTextColumn x:Name="FilterTextCol01"
IsReadOnly="False"
Width="{Binding ElementName=TextCol01, Path=ActualWidth, Mode=TwoWay}" />
</DataGrid.Columns>
第二:
<DataGridTextColumn CellStyle="{StaticResource DataGridColumnContentLeft}"
local:DataGridUtil.Name="TextCol01"
x:Name="TextCol01"
Header="TextCol01"
SortMemberPath="TextCol01"
Binding="{Binding TextCol01}"
Width="Auto"
IsReadOnly="True"/>
第一列的宽度与第二列的宽度绑定(bind)不起作用。
如果我以这种方式在代码中进行操作:
FilterTextCol01.Width = TextCol01.ActualWidth;
有用。
谁能告诉我为什么第一种方法行不通?
最佳答案
因为DataGrid
列是抽象对象,所以不会出现在窗口的逻辑或可视树中。您无法使用ElementName
在其上绑定(bind)属性(这些绑定(bind)将不需要名称范围)。
您可以尝试改用Source
和 x:Reference
,例如
{Binding Source={x:Reference TextCol01}, Path=ActualWidth}