2
私はWPF MVVMでアプリケーションを開発しています。私はコンバータ、または*オートリターンで、Widthプロパティが必要です。私のコンバータは良い値を返しますが、無駄です。ここでは、私の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();
}
}
コンバータとミリアンペアビューでは
<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>
ありがとうございました!それは完全に動作します! –