0

私の最初の本物のアプリを完成させようとしている趣味の人なので、これが初心者の質問であるならば、事前に感謝し、謝罪します。

ドラッグアンドドロップが有効になっているデータグリッドビューに、チームクラスからのデータと、インデックスに基づいてリスト内のアイテムに値を割り当てるディクショナリが入力されています。ドラッグアンドドロップ行の並べ替えで機能するようになっていないため、バインディングを実装していません。

teamList = new List<Team>(){
    new Team("Redskins","WAS", "Washington"),
    new Team("Cowboys", "DAL", "Dallas"),
    new Team("Eagles", "PHI", "Philadelphia"),
    new Team("Giants", "NYG", "New York"),
    new Team("Packers", "GB", "Green Bay")
 };

class Team
{
    public string Mascot { get; private set; }
    public string Key { get; private set; }
    public string City { get; private set; }
}

Dictionary<int, int> powerValues = new Dictionary<int, int>(){
    {1, 113},
    {2, 110},
    {3, 109},
    {4, 108},
    {5, 107}
};

private void printValues()
{   // add Team to DGV wiht PowerRank as index+1 and PowerValue based on Dictionary
    int i = 0;
    foreach (Team team in TeamList)
    {                
        // add all data to a datagrid view
        dataGridView1.Rows.Add(i+1, team.Mascot,powerValues[teamList.IndexOf(team) + 1]); //set the rank
        i++;
    }
}

この時点に到達したら、2つのことを実行しようとしています。

1) Update List<Team> based on drag and drop change
2) Re-assign PowerRank and PowerValue based on new index of Team

私は役に立たないいくつかのことを試みました-正しい方向へのアイデアやポイントはありますか?

4

1 に答える 1

0

私は新しい方法で#2を回避しましたが、それは私が改善のためにそれほどオープンに望んでいたエレガントなソリューションではありません。まだ#2に取り組んでいます

    private void reEstablishRanking()
    {
        for (int i = 0; i < defaultPR.TeamList.Count; i++)
        {
            dataGridView1.Rows[i].Cells["PowerRank"].Value = (i + 1);
            dataGridView1.Rows[i].Cells["PowerValue"].Value = defaultPR.PRScores[i + 1];
        }
    }
于 2013-03-14T20:51:45.747 に答える