silverligth datagrid 分組

來源:互聯網
上載者:User

  最近在項目中很多的地方都用到了資料的展示---DataGrid控制項,在園子裡面也有很多的朋友也對這個DataGrid控制項也寫了很多的教程;我這裡也與其它人也沒有什麼區別,這裡只是告訴大家一個小的技巧;但是我相信這一個小的技巧對大家以後在項目中應該有一些協助;一天,領導走過來看了我使用者管理UI,我用了一個DataGrid控制項把使用者用分頁的方式給做了出來;這個使用者裡面有使用者的部門,使用者名稱,地址,等相關資訊;領導看了,說你的使用者資訊可以有一種階層就最好了,這一聽他這句話,我就回答說,這個可以做的,我說可以按照部門來分組的;這裡我就加上了一兩句代碼,按照領導的要求滿足了,也有了階層;可是領導看了,還是不很滿意;他說,你看怎麼給使用者看英文,一定要把英文改成中文,並且這分組的這一行要與其它的行要有反白出來這時,我沒有直接的回答領導的問題,我說,這個讓我看看,能解決;為瞭解決領導的這個問題,我花費了很多的時間,在網上也沒有看到這種的解決方案;最後沒有辦法,認真的去看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 = "姓名";

          

       }

  運行結果如下所示:

 

  上面圖中我們就達到領導的要求了,把英文修改成讓使用者能看懂的意思了;接下來滿足領導的第二個要求;只要給分組的行著色就可以與資料行區別開來了;

void MyDataGrid_LoadingRowGroup(object sender, DataGridRowGroupHeaderEventArgs e)

        {

            e.RowGroupHeader.PropertyName = "姓名";

            e.RowGroupHeader.Background = new SolidColorBrush(Colors.Orange);

        }

  運行結果如下所示:

 

  總結:就這兩個小問題,如果是第一次碰到,一定會讓你痛苦一段時間,沒有辦法使用者就是上帝,結果這兩個問題都讓我解決了;在項目中我也碰到了很多的技術上的問題,目前碰到的問題差不多,都慢慢的得到瞭解決;在以後,我會把我在項目中的技術性的問題與大家一起分享;

  出處:http://www.cnblogs.com/caodaiming

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.