2
我正在WPF MVVM中开发一个应用程序。我希望宽度属性,转换器或*自动返回。我的转换器返回良好的价值,但无济于事。在这里,我转换XAML IMultiValueConverter宽度自动或*
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();
}
}
和MA视图
<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>
谢谢!它完美的作品! –