我有一个包含一个包含GridView的ListView的WPF MVVM应用程序 使用帮助器类我正在创建GridViewColumn,它可以很好地工作。
我的问题:我想twoway-bound宽度,以便我可以读回宽度的变化。
现在创建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;
}
任何人都有一些指示我如何能够绑定宽度?
答案 0 :(得分:3)
检查出来:BindingOperations.SetBinding
此方法创建一个新实例 一个BindingExpressionBase和关联 具有给定依赖关系的实例 给定对象的属性。这个 method是附加绑定的方法 到一个任意的DependencyObject 可能不会公开自己的SetBinding 方法
BindingOperations.SetBinding(column, GridViewColumn.WidthProperty, widthBinding);