2009-11-09 29 views
0

我想从我的GridView中包含我的集合中每个对象的Type名称。我有一个集合,它有四种不同的类型,它们都来自基类。打电话给他们,Foo,Bar,Fizz和Buzz。WPF GridView,显示GetType()。DisplayMemberBinding中的名称

我想分别读取该列,Foo,Bar,Fizz或Buzz。下面是我正在使用的绑定,但它不起作用。

到目前为止,我有这个。

GridViewColumn colC = new GridViewColumn() 
{ 
Header = "Type", 
Width = 100, 
DisplayMemberBinding = New Binding("listName.GetType().Name") 
} 

它的工作,如果我使用一个名为类型名的字符串属性,要求GetType().Name我。

任何想法?我解释正确吗?

回答

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() }; 

转换器的方法显然有它不要求您修改模型的好处。

+0

@itowlson,是的,你是对的,我正在实施一个MVVM。 – Chris 2009-11-10 19:10:08