WPF绑定对象更新通知

时间:2010-04-06 22:27:43

标签: wpf data-binding

我有一个带有几个绑定对象的TreeView,让我们这样说:

public class House
    {
        public List<Room> Rooms { get; set; }
        public List<Person> People { get; set; }

        public House()
        {
            this.Rooms = new List<Room>();
            this.People = new List<Person>();
        }

        public void BuildRoom(string name)
        {
            this.Rooms.Add(new Room() { Name = name });
        }

        public void DestroyRoom(string name)
        {
            this.Rooms.Remove(new Room() { Name = name });
        }

        public void PersonEnter(string name)
        {
            this.People.Add(new Person() { Name = name });
        }

        public void PersonLeave(string name)
        {
            this.People.Remove(new Person() { Name = name });
        }
    }

    public class Room
    {
        public string Name { get; set; }
    }

    public class Person
    {
        public string Name { get; set; }
    }

TreeView正在监视House对象,无论何时构建/销毁一个房间或一个人进入/离开,我的树视图都会自动更新以显示房屋的新状态(为简单起见,我省略了一些实现细节)。 / p>

我想要的是知道这次更新完成的确切时刻,所以我可以在那里做点什么,事情是我创建了所选项目的指标,当有什么东西移动时,我需要更新所述指标的位置,这就是我在树视图更新时完全需要它的原因。

如果您知道解决方法,请告诉我。

此外,代码并不完美(DestroyRoom和PersonLeave),但你明白了。

谢谢!

1 个答案:

答案 0 :(得分:0)

使用ObservableCollection&lt; T&gt;并将其包装在CollectionView中以获取可绑定的CurrentItem。

http://msdn.microsoft.com/en-us/library/system.windows.data.collectionview_members.aspx