我有以下的風光:Silverlight 3 - 如何「刷新」DataGrid內容?
1 using System;
2 using System.Windows;
3 using System.Windows.Controls;
4 using System.Windows.Documents;
5 using System.Windows.Ink;
6 using System.Windows.Input;
7 using System.Windows.Media;
8 using System.Windows.Media.Animation;
9 using System.Windows.Shapes;
10 using System.Collections.Generic;
11
12 namespace refresh
13 {
14 public partial class MainPage : UserControl
15 {
16
17 List c = new List();
18
19 public MainPage()
20 {
21 // Required to initialize variables
22 InitializeComponent();
23 c.Add(new Customer{ _nome = "Josimari", _idade = "29"});
24 c.Add(new Customer{_nome = "Wesley", _idade = "26"});
25 c.Add(new Customer{_nome = "Renato",_idade = "31"});
26
27 this.dtGrid.ItemsSource = c;
28 }
29
30 private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
31 {
32 c.Add(new Customer{_nome = "Maiara",_idade = "18"});
33 }
34
35 }
36
37 public class Customer
38 {
39 public string _nome{get; set;}
40 public string _idade{get; set;}
41 }
42 }
其中,dtGrid是我的DataGrid控件...
的問題是:如何獲得再增加一個寄存器到我的清單後更新了UI。
我去解決它設置DataGrid的物品來源爲「」,然後設置爲客戶對象的名單再次,這樣的:
1 private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
2
3 {
4
5 c.Add(new Customer{_nome = "Maiara",_idade = "18"});
6
7 this.dtGrid.ItemsSource="";
8
9 this.dtGrid.ItemsSource=c;
10
11 }
12
是否有一種方式來獲得更新的用戶界面或DataGrid的itemsSource在更新,更改或刪除列表c中的項目後自動刷新?
謝謝
Josimari Martarelli
耶利米, 即使使用3°的Silverlight版本,它仍然需要使用的ObservableCollection通知性質的變化? 謝謝, Josimari Martarelli – 2009-12-01 19:46:40
根據MSDN站點(http://msdn.microsoft.com/en-us/library/ms668604(VS.95).aspx)可觀察的集合應該在項目添加時通知或刪除...但它不會通知何時更新項目。因此,我總是建議每當列表更改時通知模式。這是一個好習慣。祝你好運! – Jeremiah 2009-12-01 22:04:01