【发布时间】:2012-02-24 22:33:03
【问题描述】:
我知道DataGridColumns 不在网格的逻辑树或可视树上。我正在使用here 所示的代理。
我需要绑定一些列的宽度。我通常使用这样的绑定:
Width="{Binding ActualWidth, ElementName=LastOperationColumn}
但是,它不起作用。关于如何做到这一点的任何想法?
【问题讨论】:
标签: c# wpf xaml data-binding datagrid
我知道DataGridColumns 不在网格的逻辑树或可视树上。我正在使用here 所示的代理。
我需要绑定一些列的宽度。我通常使用这样的绑定:
Width="{Binding ActualWidth, ElementName=LastOperationColumn}
但是,它不起作用。关于如何做到这一点的任何想法?
【问题讨论】:
标签: c# wpf xaml data-binding datagrid
您不能在 DataGrid 列中使用 ElementName,因为它们不是可视树或逻辑树中的对象,它们没有这些绑定所需的名称范围。但是,您可以使用Source 和x:Reference:
{Binding ActualWidth, Source={x:Reference LastOperationColumn}}
当然,如果手动调整此列的大小,绑定会被破坏,这不会改变。
【讨论】:
我刚刚查看了一些设置 MaxWidth 的代码,我认为它应该是相同的。这是我使用的语法。
<DataGridTextColumn...
MaxWidth="{Binding Source={x:Static Properties:Settings.Default},
Mode=OneWay,
Path=DescriptionMaxWidth}">
【讨论】:
试试这个:Width="{Binding Path=ActualWidth,ElementName=LastOperationColumn}"
【讨论】: