以编程方式将属性绑定到GridViewColumn.Width

时间:2010-07-19 10:47:19

标签: c# wpf binding properties

我有一个包含一个包含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;
}

任何人都有一些指示我如何能够绑定宽度?

1 个答案:

答案 0 :(得分:3)

检查出来:BindingOperations.SetBinding

  

此方法创建一个新实例   一个BindingExpressionBase和关联   具有给定依赖关系的实例   给定对象的属性。这个   method是附加绑定的方法   到一个任意的DependencyObject   可能不会公开自己的SetBinding   方法

BindingOperations.SetBinding(column, GridViewColumn.WidthProperty, widthBinding);