2012-12-05 146 views
1

我想將Player類的List(代表美式足球運動員的統計信息)綁定到GridView。 我代表這些球員的方式(在模型層面上,所以我可以在模型視圖中更改它)會給我帶來很多麻煩。WPF GridView - 動態綁定自定義類

class Player 
{ 
    public string Name { get; set; } 
    public List<Statistic> Statistics { get; set; } 
} 

class Statistic 
{ 
    public string ShortName { get; set; } 
    public double Value { get; set; } 
    public StatisticCategory Category { get; set; } 
} 

enum StatisticCategory 
{ 
    Offense, 
    Defense 
} 

我想綁定這些球員的名單,可以按列進行排序的視圖。 對於列我想執行以下操作: 獲取組合框的值,將其轉換爲StatisticCategory對象,然後選擇所有玩家在同一類別中的所有統計數據(當然,每個數據只有一次)。綁定到這些列的數據應該是統計值(如果玩傢俱有給定的統計值),否則爲字符' - '或類似的東西,代表缺乏數據。

我已經考慮了許多使用在線教程的選項,但似乎沒有涵蓋這種綁定,我甚至不確定這是可能的。

也許我應該考慮我的數據的其他表示形式,如果您有這方面的建議,那麼也會很感激。

回答

0

您可以使用作爲ListView或其他XAML控件的一部分公開的DataTemplate

<DataTemplate xmlns:mylib="clr-namespace:MyLib.Players" DataType="{x:Type mylib:Player}"> 
    <!-- template --> 
</DataTemplate> 

此模板也可以列爲共享資源,因此可以從許多地方訪問它。

+0

是的,我已經考慮過這些選項,我無法放在心上的是如何以我描述的方式設置DataTemplate,我的意思是我仍然必須(聲明性地)提供一個以ColumnName-屬性名稱方式綁定,當我不知道ColumName,並且沒有綁定到它的屬性時。 – Tegi