我很茫然,爲什麼這不起作用考慮到我從工作代碼中得到它,只是增加了一個新的代碼級別,但這裏是什麼我有。基本上,當我將ViewModel綁定到一個列表時,綁定會在項目添加到集合時啓動。但是,如果綁定的項目發生更新,則不會更新。基本上,我有一個ObservableCollection,它包含一個帶有字符串值的自定義類。當該字符串值得到更新時,我需要它來更新列表。Silverlight綁定 - 綁定時添加項目,但沒有得到更新
現在,當我調試時,列表項不會正確更新,但UI不反映更改。如果我將綁定項目設置爲一個成員變量並將其歸零,然後將其重置爲正確的集合,它將起作用,但不是期望的行爲。
這是一個代碼模型,希望有人能告訴我我錯在哪裏。此外,我已經嘗試在下面的代碼中的每個級別實施INofityPropertyChanged。
public class Class1
{
public string ItemName;
}
public class Class2
{
private Class2 _items;
private Class2() //Singleton
{
_items = new ObservableCollection<Class1>();
}
public ObservableCollection<Class1> Items
{
get { return _items; }
internal set
{
_items = value;
}
}
}
public class Class3
{
private Class2 _Class2Instnace;
private Class3()
{
_Class2Instnace = Class2.Instance;
}
public ObservableCollection<Class1> Items2
{
get {return _Class2Instnace.Items; }
}
}
public class MyViewModel : INofityPropertyChanged
{
private Class3 _myClass3;
private MyViewModel()
{
_myClass3 = new Class3();
}
private BindingItems
{
get { return _myClass3.Items2; } // Binds when adding items but not when a Class1.ItemName gets updated.
}
}
我可以在這裏看到一個Singleton模式的嘗試,但實際發佈的代碼有點搞砸了。沒有'Class2'的靜態實例,也沒有靜態'Instance'屬性。並不是說它與你的問題無關。 – AnthonyWJones 2010-04-01 15:53:39
是的,單身人士的作品,我只是不覺得打字全部出來。如果我說這是一個單身人士,你會假設代碼的其餘部分在那裏。我認爲這與這個問題沒有任何關係。 – 2010-04-01 16:06:21
@dw:爲了將來的參考,通常最好是發佈簡短但完整的代碼,或者明確包含評論,說明缺少實現細節。如果問題不太明顯,可能會分散注意力,難以找到正確的答案。 – AnthonyWJones 2010-04-01 16:33:49