C# XAML IMultiValueConverter宽度自动或*

C# XAML IMultiValueConverter宽度自动或*,c#,wpf,xaml,mvvm,C#,Wpf,Xaml,Mvvm,我正在WPF MVVM中开发一个应用程序。我想要一个宽度属性,带有转换器,或者*自动返回。我的转换器返回良好的值​​但是没有用。这里,我的转换器 class FicheWidthVisibilityConverter : IMultiValueConverter { int SizeDatagrid = 0; public object Convert(object[] values, Type targetType, object parameter, CultureInfo

我正在WPF MVVM中开发一个应用程序。我想要一个宽度属性,带有转换器,或者*自动返回。我的转换器返回良好的值​​但是没有用。这里,我的转换器

 class FicheWidthVisibilityConverter : IMultiValueConverter
{
    int SizeDatagrid = 0;
    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
    {

        var VisibilityFiche = (Visibility)values[1];
        var NewSizeDataGrid = System.Convert.ToInt32(values[0]);

        //Récupère la taille AUTO du datagrid
        if (SizeDatagrid == 0)
            SizeDatagrid = NewSizeDataGrid;

        //Si la taille di datagrid a changé
        if (NewSizeDataGrid < SizeDatagrid)
        {
            if (VisibilityFiche == Visibility.Visible)
                return "*";
        }
        return "Auto";
    }

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }

}
class FicheWidthVisibilityConverter:IMultiValueConverter
{
int-SizeDatagrid=0;
公共对象转换(对象[]值,类型targetType,对象参数,CultureInfo区域性)
{
var VisibilityFiche=(可见性)值[1];
var NewSizeDataGrid=System.Convert.ToInt32(值[0]);
//数据网格中的Récupère la taille AUTO du datagrid
如果(SizeDatagrid==0)
SizeDatagrid=NewSizeDataGrid;
//这是一个数据网格
if(NewSizeDataGrid
在我看来

<ColumnDefinition>
            <ColumnDefinition.Width>
                <MultiBinding  Converter="{StaticResource FicheWidthVisibilityConverter}" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
                    <MultiBinding.Bindings>
                        <Binding ElementName="Datagrid" Path="ActualWidth"/>
                        <Binding ElementName="Fiche" Path="Visibility"/>
                    </MultiBinding.Bindings>
                </MultiBinding>
            </ColumnDefinition.Width>
        </ColumnDefinition>

您应该返回类型为
GridLength
的值,而不是普通字符串。所以你应该替换
返回“*”返回新的GridLength(1,GridUnitType.Star)
返回“Auto”
返回GridLength.Auto
GridLength
类属于
System.Windows
命名空间