【发布时间】:2016-04-18 19:38:35
【问题描述】:
我有一个绑定到可观察集合的数据网格,当我更新可观察集合中的项目时,数据网格不会更新。我知道我通知不会触发,因为我没有只更改属性集合,所以我试图将项目源设置为 null 并在它检查更新后重新绑定它,但这不起作用。我也试过 items.refresh 无济于事。我发现唯一可行的方法是重新导航回 PendingChanges 页面。
了解其工作原理。我有一个窗口,其中有一个页面,底部是一个框在其中的窗口,当您单击一个按钮时,它会导航到包含数据网格的窗口(待更改)
包含数据网格的类和页面
public PendingChanges(page blahh)
{
InitializeComponent();
Datagrid.ItemsSource = obvs_collection;
}
public string GetPendingChanges()
{
PopulatePendingChanges();
return NumberOfItemsPending + " items checked out";
}
private void PopulateCollection()
{
//obvs_collection.Clear(); this doesn't work
//Datagrid.ItemsSource = null this doesn't work
foreach (var path in localPath)
{
obvs_collection.Add(new PendingItem()
{
ID = blah.Replace("\\",""),
Path = path.ToString()
});
}
}
在带有数据网格的页面中框定的类/页面
private void CheckChanges()
{
_pendingChangesPage = new PendingChanges(blah);
PendingChangesTb.Text = _pendingChangesPage.GetPendingChanges();
}
【问题讨论】:
-
清空后,您是否尝试过调用 Datagrid.Items.Refresh();