我希望从我的GridView中包含我的集合中每个对象的Type名称。我有一个集合,它有四种不同的类型,都来自基类。打电话给他们,Foo,Bar,Fizz和Buzz。
我想分别阅读该列,Foo,Bar,Fizz或Buzz。下面是我正在使用的Binding,但它不起作用。
到目前为止,我有这个。
GridViewColumn colC = new GridViewColumn()
{
Header = "Type",
Width = 100,
DisplayMemberBinding = New Binding("listName.GetType().Name")
}
如果我使用名为TypeName的String属性为我调用GetType().Name
,它确实有用。
有什么想法吗?我能正确解释一下吗?
答案 0 :(得分:2)
您无法使用绑定调用方法。您必须使用包装器属性(根据您的TypeName解决方案)或转换器,例如
public class TypeNameConverter : IValueConverter
{
public object Convert(object value, ...)
{
return value.GetType().Name; // omitting error handling
}
}
DisplayMemberBinding = new Binding("listName") { Converter = new TypeNameConverter() };
转换器方法显然具有不需要您修改模型的好处。