FlexGrid for WPF 帮助文档
自动完成并映射列

自动完成和映射列由一个内置的叫做ColumnValueConverter的类实现。这个类涉及三种常见的绑定场景:

自动完成独占模式(列表框风格的编辑)

列只能取有限的特定值。例如,你有一个“Country”列,为字符串类型,同时具有一个国家名称的列表。用户应该从列表中选择一个国家,而不被允许输入的任何国家的名称不在此列表中。

您仅需两行代码即可处理这个场景:

C#
拷贝代码
var c = _flexEdit.Columns["Country"];
c.ValueConverter = new ColumnValueConverter(GetCountryNames(), true);

ColumnValueConverter构造器的第一个参数提供了一个合法值的列表。第二个参数确定是否最终用户允许输入在此列表中不存在的值(在此示例中,用户不允许这么做)。

自动完成非独占模式(组合框式编辑)

列具有一些共通的值选项,但是同样也可以接受其它值。例如,你有一个“Country”列,为字符串类型,并希望提供一个常见的国家名称列表供最终用户容易地进行选择。但在这种情况下,用户也应该允许键入在列表中不存在的值。

你仍然仅需要两行行代码即可处理这个场景:

C#
拷贝代码
var c = _flexEdit.Columns["Country"];
c.ValueConverter = new ColumnValueConverter(GetCountryNames(), false);

和上一个示例一样,ColumnValueConverter构造器的第一个参数提供一组合法值的列表。在这个场景下,第二个参数决定了该列表是非排他性的,因此用户可以输入该列表中不存在的值。

使用一个键值字典自动完成

列将包含键值而不是实际的值。例如,该列可能包含一个整数,表示一个国家标识,但用户应该看到并编辑相应的国家名称。下面的代码演示了如何处理这个场景:

C#
拷贝代码
// 建立键-值对应关系字典
var dct = new Dictionary<int, string>();
foreach (var country in GetCountryNames())
{
  dct[dct.Count] = country;
}

// 获取列
var c = _flexEdit.Columns["CountryID"];

// 创建并为值字典分配Converter
c.ValueConverter = new ColumnValueConverter(dct);

// 将列靠左对齐
c.HorizontalAlignment = HorizontalAlignment.Left;
查看其它

 

 


产品网站:http://www.gcpowertools.com.cn  |  咨询热线:4006576008   |   ©2015 西安葡萄城