我將視圖模型中的實例添加到列表中,如下所示。由於該列表是傾聽的,但不是個別項目,所以我意識到我需要明確告訴視圖,它所綁定的列表已更新。儘管有通知,但數據網格並未顯示添加的記錄
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很可能不會告訴我們,因爲它在開始時會正確綁定。但我當然也會發佈一個這樣的內容。你稍等一會兒。 –