【发布时间】:2010-06-29 00:02:13
【问题描述】:
我正在使用带有绑定功能的 WPF DataGrid 来显示和编辑类的各种属性。其中许多属性是IEnumerable<string>。我想显示这些串联,可枚举的每个项目由换行符分隔。该值还必须是可编辑的 - 编辑后,应在每个换行符上拆分连接的字符串并分配回绑定属性。
例如:
可枚举的{"a","b","c"}
变成:
"a
b
c"
然后在网格中将其编辑为:
"alpha
b
cat"
并且绑定的属性更新为:{"alpha","b","cat"}
有没有办法重载 DataGridColumn 类之一来做到这一点?
编辑: 感谢 Quartermeister,我得到了这个工作。我正在使用自动生成的列,所以在我的 AutoGeneratingColumn 事件中我做了以下操作:
if (e.PropertyType == typeof(IEnumerable<string>)) {
DataGridTextColumn dgtc = e.Column as DataGridTextColumn;
JoinStringEnumerableConverter con = new JoinStringEnumerableConverter();
(dgtc.Binding as Binding).Converter = con;
}
其中 e 是事件参数。这将转换器添加到绑定中,它似乎工作得非常好。再次感谢。
【问题讨论】: