Wpf 将模板中的文本框设置为与列宽匹配的宽度

Wpf 将模板中的文本框设置为与列宽匹配的宽度,wpf,datatemplate,Wpf,Datatemplate,假设我必须自定义单元格模板 <telerik:GridViewDataColumn DataMemberBinding="{Binding Name}" Width="*"> <telerik:GridViewDataColumn.CellTemplate> <DataTemplate> <TextBox Text="{Binding Name}" Margi

假设我必须自定义单元格模板

    <telerik:GridViewDataColumn DataMemberBinding="{Binding Name}" Width="*">
         <telerik:GridViewDataColumn.CellTemplate>
               <DataTemplate>
                    <TextBox Text="{Binding Name}" Margin="2" Padding="2 0 2 0" Width="160" />
               </DataTemplate>
         </telerik:GridViewDataColumn.CellTemplate>
   </telerik:GridViewDataColumn>
    <telerik:GridViewDataColumn DataMemberBinding="{Binding Address}" Width="2*">
         <telerik:GridViewDataColumn.CellTemplate>
               <DataTemplate>
                    <TextBox Text="{Binding Address}" Margin="2" Padding="2 0 2 0" Width="360" />
               </DataTemplate>
         </telerik:GridViewDataColumn.CellTemplate>
   </telerik:GridViewDataColumn>

我的问题是我不知道列的宽度,所以我硬编码文本框的宽度为160或360。我通过视觉外观手动调整宽度

那么w可以将其绑定到列的宽度吗

Width={Binding ElementName=ColumnName , Path=Width}
或者您可以设置文本框的宽度

宽度=“自动”


所以它将适合文本宽度,或者如果你不设置宽度,不确定这一个,但是,它将采用它的父元素的宽度(不要将我的词作为最后一个)。

为什么要首先指定显式文本框宽度?@mm8,因为默认情况下文本框的宽度很小。它不能显示整个文本。但是这列的宽度很大。我想让他们匹配。因此,我强制宽度等于一个大值。默认情况下,文本框应水平拉伸以填充列,也就是说,如果您根本没有设置宽度属性。我有文本框的默认全局样式。我无法改变它,因为它影响到所有地方。所以我想覆盖它。您是否尝试过
Width=“Auto”