У меня есть приложение WPF MVVM, содержащее ListView, содержащее GridView.
Используя класс-помощник, я создаю GridViewColumn, который работает красиво.Программно связывать свойство с GridViewColumn.Width
Моя проблема: я хочу, чтобы twoway привязывал ширину, чтобы я мог читать изменения в ширину.
Код для создания GridViewColumn прямо сейчас выглядит следующим образом:
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;
}
Каждый получил некоторые указатели для меня, как я мог бы быть в состоянии связать ширину?
GridView не содержит метод SetBinding, где я должен искать это? – Sam
Это не в GridView, это в BindingOperations, как сказано в ответе ... –
@Sam: Да! Поскольку класс GridViewColumn (а не GridView) не имеет метода SetBinding, привязка должна быть выполнена таким образом. Проверьте мое редактирование для кода. – Amsakanna