[Silverlight] 在 Datagrid 中抓取某一欄位的值..
2010/10/13
上一次用Winform 或是 ASP.net 的DataGird
已經是好幾年前的事情了…
還記得好久好久以前…表格都是要靠自己用Repeater 自己去gen 出來..
之前再用Flex 的時候 對於他們DataGrid 可以 Binding 一個 List 取出時也可以直接轉回成為物件..
感到很溫馨..
現在Silverlight 也是… 可參考 [Silverlight] Datagrid Binding Data 簡單範例
對於把資料抓出來..可以不用像我以前的做法..
要去算Row 跟 Column..
而是透過一個關鍵字 as 就可以了…
首先我們承襲 [Silverlight] Datagrid Binding Data 簡單範例 繼續寫下去…
內容就不贅述…
首先我先制定一個OrderInfo 的 Class
namespace GridSelectItemMemo { public class OrderInfo { public string OrderNo { get; set; } //訂單編號 public string ProductName { get; set; } //產品名稱 public string UserName { get; set; } //訂購人姓名 public int Price { get; set; } //價錢 public OrderInfo(string orderNo, string prodName, string userName, int price) { OrderNo = orderNo; ProductName = prodName; UserName = userName; Price = price; } } }
private void LayoutRoot_Loaded(object sender, RoutedEventArgs e) { OrderPool.Add(new OrderInfo("1","Apple iPhone4","當麻許",23000)); OrderPool.Add(new OrderInfo("2", "MS WinPhone7", "Downmud", 19999)); OrderPool.Add(new OrderInfo("3", "Apple iPad 8G", "Dracula", 17000)); OrderPool.Add(new OrderInfo("4", "Windwos 7 旗艦版", "Lucifer", 9000)); OrderPool.Add(new OrderInfo("5", "MS Arc滑鼠", "Dracula Hsu", 1800)); this.dataGrid1.ItemsSource = OrderPool; }
這時候…
我們要在改變選取的時候 抓到 訂單編號…
只需要在 SelectionChanged 加入事件…
讓他彈出一個MessageBox 顯示你選取得訂單編號..
private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e) { DataGrid grid = sender as DataGrid; if (grid.SelectedItem != null) { //可直接轉成為 OrderInfo 物件型態 MessageBox.Show("你選取的編號是" + (grid.SelectedItem as OrderInfo).OrderNo); } }
很簡單.這做法跟Flex 用Datagrid 去Binding 一個ArrayCollection 而且取出方法是一樣的…
真是佛心啊…
預覽:
讚一下:
下載範例:
標籤:
Silverlight
|
This entry was posted on 下午4:13
and is filed under
Silverlight
.
You can follow any responses to this entry through
the RSS 2.0 feed.
You can leave a response,
or trackback from your own site.
訂閱:
張貼留言 (Atom)
0 意見:
張貼留言