J'ai reçu une application WPF MVVM contenant un ListView contenant un GridView.
En utilisant une classe d'aide, je crée le GridViewColumn, qui fonctionne bien.Lier par programme la propriété à GridViewColumn.Width
Mon problème: Je veux lier deux fois la largeur pour que je puisse relire les changements de largeur.
Le code pour créer le GridViewColumn droit ressemble maintenant à ceci:
private static GridViewColumn CreateColumn(GridView gridView, object columnSource)
{
GridViewColumn column = new GridViewColumn();
String headerTextMember = GetHeaderTextMember(gridView);
String displayMemberMember = GetDisplayMemberMember(gridView);
String widthMember = GetWidthMember(gridView);
// set header
column.Header = GetPropertyValue(columnSource, headerTextMember);
// set display binding
String propertyName = GetPropertyValue(columnSource, displayMemberMember) as String;
column.DisplayMemberBinding = new Binding(propertyName);
// bind with - but how?
//Binding widthBinding = new Binding(widthMember);
//widthBinding.Source = columnSource;
//widthBinding.Mode = BindingMode.TwoWay;
//gridView.SetBinding(GridViewColumn.WidthProperty, widthBinding); <- gridView got no SetBinding :(
}
return column;
}
Quelqu'un at-il quelques conseils pour moi comment je pourrais être en mesure de lier la largeur?
GridView ne contient pas la méthode SetBinding, où dois-je chercher cela? – Sam
Ce n'est pas dans GridView, c'est dans BindingOperations, comme dit dans la réponse ... –
@Sam: Oui! Puisque la classe GridViewColumn (pas GridView) n'a pas la méthode SetBinding, la liaison doit être faite de cette façon. Vérifiez ma modification pour le code. – Amsakanna