哪个列没有调整大小?

Whis is the column not resize?

我有一个数据网格,我想根据一些值设置列的宽度,所以我尝试以这种方式使用多重绑定:

                        <DataGridTextColumn.Width>
                            <MultiBinding Converter="{StaticResource MyMultiValueConverter}">
                                <Binding Source="{x:Reference ProxyElement}" Path="DataContext.MyProperty" />
                                <Binding Source="0"/>
                            </MultiBinding>
                        </DataGridTextColumn.Width>

转换器已触发,但宽度未根据 de 值更改 returns。

但是,我有一个类似的转换器来设置可见性并且它按预期工作:

                        <DataGridTextColumn.Visibility>
                            <MultiBinding Converter="{StaticResource MyConverterVisibilityMultiValueConverter}">
                                <Binding Source="{x:Reference ProxyElement}" Path="DataContext.NombreProveedor" />
                                <Binding Source="0"/>
                            </MultiBinding>
                        </DataGridTextColumn.Visibility>

为什么它适用于可见性但不适用于宽度?

谢谢。

编辑:

我试过用这种方式设置列内文本块的宽度:

值转换器:

public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
//I have tried both ways, DataGridLength and return 20
    //return new DataGridLength(20, DataGridLengthUnitType.SizeToHeader);
    return 20;
}

Xaml:方案一,直接设置宽度,有效

                    <DataGridTextColumn.ElementStyle>
                        <Style TargetType="{x:Type TextBlock}">
                            <Setter Property="Width" Value="20"/>
                        </Style>
                    </DataGridTextColumn.ElementStyle>
                </DataGridTextColumn>

Xaml:选项 2:尝试使用值转换器,它不起作用

                    <DataGridTextColumn.ElementStyle>
                        <Style TargetType="{x:Type TextBlock}">
                            <Setter Property="Width">
                                <Setter.Value>
                                    <MultiBinding Converter="{StaticResource MyMultiValueConverter}" >
                                        <Binding Source="{x:Reference ProxyElement}" Path="DataContext.Property1" />
                                        <Binding Source="{x:Reference ProxyElement}" Path="DataContext.Property2" />
                                    </MultiBinding>
                                </Setter.Value>
                            </Setter>
                        </Style>
                    </DataGridTextColumn.ElementStyle>
                </DataGridTextColumn>

转换器升起 returns 20,但该列不采用此值。

确保转换器returns一个DataGridLength值:

return new DataGridLength(100, DataGridLengthUnitType.Pixel);