man*_*ton 10 c# data-binding wpf xaml datagrid
我有两个datagrids,每个都有一列.第一:
<DataGrid.Columns>
<DataGridTextColumn x:Name="FilterTextCol01"
IsReadOnly="False"
Width="{Binding ElementName=TextCol01, Path=ActualWidth, Mode=TwoWay}" />
</DataGrid.Columns>
Run Code Online (Sandbox Code Playgroud)
第二:
<DataGridTextColumn CellStyle="{StaticResource DataGridColumnContentLeft}"
local:DataGridUtil.Name="TextCol01"
x:Name="TextCol01"
Header="TextCol01"
SortMemberPath="TextCol01"
Binding="{Binding TextCol01}"
Width="Auto"
IsReadOnly="True"/>
Run Code Online (Sandbox Code Playgroud)
第一列的宽度与第二列的宽度的绑定不起作用.如果我在代码中这样做:
FilterTextCol01.Width = TextCol01.ActualWidth;
Run Code Online (Sandbox Code Playgroud)
有用.谁能告诉我为什么第一种方法不起作用?
H.B*_*.B. 14
因为DataGrid
列是抽象对象,不会出现在窗口的逻辑或可视树中.您不能使用它们绑定属性ElementName
(这些绑定不需要名称范围).
您可以尝试使用Source
和x:Reference
代替,如
{Binding Source={x:Reference TextCol01}, Path=ActualWidth}
Run Code Online (Sandbox Code Playgroud)