我将视图模型中的实例添加到列表中,如下所示。由于该列表是倾听的,但不是个别项目,所以我意识到我需要明确告诉视图,它所绑定的列表已更新。尽管有通知,但数据网格并未显示添加的记录
public class ThingyViewModel : INotifyPropertyChanged
{
public List<Thingy> Thingies { get; set; }
public void Register(Thingy thingy)
{
using (ServiceClient client = ...)
client.Register(thingy);
Thingies.Add(thingy);
OnPropertyChanged("Thingies");
}
...
}
的方法OnPropertyChanged是VS,我利用一切别处其中担任的默认实现。因此,我没有理由怀疑在那里犯规。
当我在视图模型中调用注册时在我的视图中中断执行时,我可以在数据上下文中清楚地看到新实例不在调用之前的列表中。同样很清楚,我可以看到在操作执行完成后它处于数据上下文中。
因此,如果数据上下文确实确实获得新实例并且调用了通知(是的,我已经对拼写进行了四次检查),那么还会出现什么错误?显然我错过了一些东西,但在这一点上,我看不到那可能是什么 - 我需要一个或两个指针。
<igDP:XamDataGrid Name="DataGrid"
DataSource="{Binding Path=Thingies}"
...>
你能分享xaml吗?为什么你的ThingyViewModel没有实现INotifyPropertyChanged接口? – user2250152
@ user2250152哦,它确实实现了它。做这个例子时我就把它关掉了。我的坏 - 让我纠正它pronto。 XAML很可能不会告诉我们,因为它在开始时会正确绑定。但我当然也会发布一个这样的内容。你稍等一会儿。 –