【发布时间】:2021-10-25 09:52:11
【问题描述】:
我在数据网格中有一个列,我正在使用多值转换器设置 textblck 的宽度。但是列的宽度没有被修改。我希望宽度列根据 texblock 的内容进行调整。
专栏是这样的:
<DataGridTextColumn Header="Columna2" Binding="{Binding}" Width="AUTO">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="Background" Value="Orange"/>
<Setter Property="Width">
<Setter.Value>
<MultiBinding Converter="{StaticResource MiMultiValueConverter}">
<Binding Path="UseConverterIsChecked" Source="{StaticResource vm}"/>
<Binding Path="WidthColumn2" Source="{StaticResource vm}"/>
</MultiBinding>
</Setter.Value>
</Setter>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
我知道文本块的大小调整正确,因为我设置了背景以查看文本块的实际大小。
这是原始尺寸:
这是转换器设置文本块值的时候:
如何调整列的大小?
谢谢。
编辑:
如果我按照某些评论中的建议使用水平拉伸,我会得到以下结果:
编辑:
这是 MiMultiValueConverter 的代码:
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
bool miBlUsarConverter = (bool)values[0];
double miDbAncho = (double)values[1];
return (miBlUsarConverter) ? miDbAncho : 200;
}
【问题讨论】:
-
你为什么要设置
Width的TextBlock要调整列宽?这没有道理。为什么不设置列宽?