从子窗口添加数据后,silverlight 数据网格刷新
silverlight datagrid refresh after add data from childwindow
我想在从子窗口添加数据后刷新我的数据网格。
下面是我的 Home.xaml.cs
public partial class Home : Page
{
ServiceReference1.Service1Client webService;
public Home()
{
InitializeComponent();
webService = new ServiceReference1.Service1Client();
webService.ReadPismaCompleted += WebService_ReadPismaCompleted;
webService.ReadPismaAsync(0);
}
private void WebService_ReadPismaCompleted(object sender, ServiceReference1.ReadPismaCompletedEventArgs e)
{
if(e.Result != null)
{
dataGridPisma.ItemsSource = e.Result;
}
}
private void button_Click(object sender, System.Windows.RoutedEventArgs e)
{
ChildWindow1 childWindow = new ChildWindow1();
childWindow.Closed += ChildWindow_Closed;
childWindow.Show();
}
private void ChildWindow_Closed(object sender, System.EventArgs e)
{
if (( (ChildWindow1)sender).DialogResult.Value) webService.ReadPismaAsync(0);
}
添加数据后我没有看到任何变化(单击子窗口上的确定按钮不刷新数据网格)。我知道已添加数据,因为我在 SQL 服务器 table 中看到,并且当我在网络浏览器上刷新(按 F5)时,我看到了新数据。
在WebService_ReadPismaCompleted
方法中使用PagedCollectionView
private PagedCollectionView _dataGridContext;
private void WebService_ReadPismaCompleted(object sender,serviceReference1.ReadPismaCompletedEventArgs e)
{
if(e.Result != null)
{
DataGridContext = new PagedCollectionView(e.Result)
}
}
public PagedCollectionView DataGridContext
{
get { return _dataGridContext; }
set {
_dataGridContext = value;
OnPropertyChanged("DataGridContext");
}
}
并设置你的DataGrid.DataContext=DataGridContext
添加这个
`[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged(string propertyName)
{
var handler = PropertyChanged;
if (handler != null)
{
handler(this,
new PropertyChangedEventArgs(propertyName));
}
}`
从您的 setter.
添加删除 datagridPisma.DataContext=DataGridContext
我想在从子窗口添加数据后刷新我的数据网格。 下面是我的 Home.xaml.cs
public partial class Home : Page
{
ServiceReference1.Service1Client webService;
public Home()
{
InitializeComponent();
webService = new ServiceReference1.Service1Client();
webService.ReadPismaCompleted += WebService_ReadPismaCompleted;
webService.ReadPismaAsync(0);
}
private void WebService_ReadPismaCompleted(object sender, ServiceReference1.ReadPismaCompletedEventArgs e)
{
if(e.Result != null)
{
dataGridPisma.ItemsSource = e.Result;
}
}
private void button_Click(object sender, System.Windows.RoutedEventArgs e)
{
ChildWindow1 childWindow = new ChildWindow1();
childWindow.Closed += ChildWindow_Closed;
childWindow.Show();
}
private void ChildWindow_Closed(object sender, System.EventArgs e)
{
if (( (ChildWindow1)sender).DialogResult.Value) webService.ReadPismaAsync(0);
}
添加数据后我没有看到任何变化(单击子窗口上的确定按钮不刷新数据网格)。我知道已添加数据,因为我在 SQL 服务器 table 中看到,并且当我在网络浏览器上刷新(按 F5)时,我看到了新数据。
在WebService_ReadPismaCompleted
方法中使用PagedCollectionView
private PagedCollectionView _dataGridContext;
private void WebService_ReadPismaCompleted(object sender,serviceReference1.ReadPismaCompletedEventArgs e)
{
if(e.Result != null)
{
DataGridContext = new PagedCollectionView(e.Result)
}
}
public PagedCollectionView DataGridContext
{
get { return _dataGridContext; }
set {
_dataGridContext = value;
OnPropertyChanged("DataGridContext");
}
}
并设置你的DataGrid.DataContext=DataGridContext
添加这个
`[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged(string propertyName)
{
var handler = PropertyChanged;
if (handler != null)
{
handler(this,
new PropertyChangedEventArgs(propertyName));
}
}`
从您的 setter.
添加删除datagridPisma.DataContext=DataGridContext