1

プレーヤークラスのリスト(アメリカンフットボールのプレーヤーの統計を表す)を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回のみ)のすべての統計を選択します。これらの列にバインドされるデータは、統計の値である必要があります(プレーヤーが指定された統計を持っている場合)。そうでない場合は、データの不足を表す文字「-」または同様のものです。

私はオンラインチュートリアルを使用して多くのオプションを検討しましたが、この種のバインディングをカバーしているものはないようです。これが可能かどうかさえわかりません。

たぶん、私のデータの他の表現を検討する必要があります。それに関する提案があれば、それもありがたいです。

4

1 に答える 1

0

ListView または別の XAML コントロールの一部として公開されたDataTemplateを使用できます。

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

このテンプレートは共有リソースとしてリストすることもできるため、多くの場所からアクセスできます。

于 2012-12-05T00:50:51.290 に答える