Silverlight Binding - Binds when item is added but doesn't get updates.

Posted by dw on Stack Overflow See other posts from Stack Overflow or by dw
Published on 2010-04-01T15:41:58Z Indexed on 2010/04/01 15:43 UTC
Read the original article Hit count: 211

Filed under:
|

Hello, I'm sorta at a loss to why this doesn't work considering I got it from working code, just added a new level of code, but here's what I have. Basically, when I bind the ViewModel to a list, the binding picks up when Items are added to a collection. However, if an update occurs to the item that is bound, it doesn't get updated. Basically, I have an ObservableCollection that contains a custom class with a string value. When that string value gets updated I need it to update the List.

Right now, when I debug, the list item does get updated correctly, but the UI doesn't reflect the change. If I set the bound item to a member variable and null it out then reset it to the right collection it will work, but not desired behavior.

Here is a mockup of the code, hopefully someone can tell me where I am wrong. Also, I've tried implementing INofityPropertyChanged at every level in the code below.

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.
     }
}

© Stack Overflow or respective owner

Related posts about c#

Related posts about Silverlight