我有一个带有几个绑定对象的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),但你明白了。
谢谢!
答案 0 :(得分:0)
使用ObservableCollection&lt; T&gt;并将其包装在CollectionView中以获取可绑定的CurrentItem。
http://msdn.microsoft.com/en-us/library/system.windows.data.collectionview_members.aspx