silverligth datagridパケット

4930 ワード

最近プロジェクトの中で多くの地方はすべてデータの展示を使いました---DataGridコントロール、园の中でも多くの友达がこのDataGridコントロールに対して多くの教程を书きました;私のところも他の人と何の違いもありません.ここはただみんなに小さなテクニックを教えています.しかし、私はこの小さなテクニックが皆さんの今後のプロジェクトに役立つと信じています.ある日、リーダーは私のユーザー管理UIを見に来て、私はDataGridコントロールを使ってユーザーをページ分けの方法で作った.このユーザーの中にはユーザーの部門、ユーザー名、住所などの関連情報があります.リーダーは見て、あなたのユーザー情報に階層があれば一番いいと言って、彼のこの話を聞いて、私は答えて、これはできることで、私は部門によってグループ化することができると言った.ここで私は1、2つのコードを追加して、リーダーの要求に従って満足して、階層もあります;しかし、指導者は見て、まだ満足していません.彼は、どのようにユーザーに英語を見せるかを見て、必ず英語を中国語に変えなければならないと言っています.そして、このグループのこの行は他の行と際立って表示されなければなりません.この時、私は直接指導者の質問に答えていません.私は、これは私に見せて、解決することができます.リーダーのこの問題を解決するために、私は多くの時間を費やして、ネット上でもこのような解決策を見ていません.結局仕方なく、真剣にSilverlightの助けを見に行きました;ほほほ、助けを調べることで、解決策を見つけました.
今、この方法を皆さんと共有します.DEMOのデータはテストデータです.
Studentエンティティークラスを新規作成するには、次の手順に従います.public class Student
  {
      public string Name { get; set; }
      public int Age { get; set; }
      public string Phone { get; set; }
  }

得られたデータをグループ化して表示します.public void BindDataGrid()
      {
          PagedCollectionView pcv = new PagedCollectionView(getData);
          pcv.GroupDescriptions.Add(new System.Windows.Data.PropertyGroupDescription("Name"));
          MyDataGrid.ItemsSource = pcv;
      }

次のように動作します.
このとき、私たちはどのようにして上の図の英語の「Name」をユーザーが知っている意味に変えますか?
DataGridはグループ行のイベントを提供します.コードは次のとおりです.void MyDataGrid_LoadingRowGroup(object sender, DataGridRowGroupHeaderEventArgs e)
       {
           e.RowGroupHeader.PropertyName = " ";
          
       }

実行結果は次のとおりです.
 
上の図の中で私たちは指導者の要求に達して、英語をユーザーに理解できる意味に修正しました.次に指導者の2番目の要求を満たす.グループ化された行に色を付けるだけでデータ行と区別できます.void MyDataGrid_LoadingRowGroup(object sender, DataGridRowGroupHeaderEventArgs e)
        {
            e.RowGroupHeader.PropertyName = " ";
            e.RowGroupHeader.Background = new SolidColorBrush(Colors.Orange);
        }

実行結果は次のとおりです.
 
まとめ:この2つの小さな問題について、もし初めて出会ったら、きっとあなたを苦しめて、ユーザーが神であることはできません.結局、この2つの問題は私に解決させました.プロジェクトの中で私も多くの技術上の問題にぶつかって、今出会った問題は多くなくて、すべてゆっくりと解決しました;これからは、プロジェクトでの技術的な問題を皆さんと共有します.
出典:http://www.cnblogs.com/caodaiming