WPF GridView - 动态绑定自定义类

时间:2012-12-05 00:47:14

标签: c# wpf xaml data-binding

我想将一个Player类的List(表示美式足球运动员的统计数据)绑定到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对象,然后选择所有玩家的同一类别中的所有统计数据(当然每个只有一次)。绑定到这些列的数据应该是统计数据的值(如果玩家具有给定的统计数据),否则字符“ - ”或类似的东西,表示缺少数据。

我已经考虑过使用在线教程的许多选项,但似乎没有任何选项涵盖这种绑定,我甚至不确定这是否可行。

也许我应该考虑我的数据的其他表示,如果您有关于此的建议,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以使用DataTemplate作为ListView或其他XAML控件的一部分公开。

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

此模板也可以列为共享资源,因此可以从许多地方访问它。