2009-11-09 61 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