我有一个对象列表(让我们称之为Category),它包含一个Items列表。所以:
ObservableCollection<Category> Categories = new ObservableCollection<Category>();
public class Category
{
ObservableCollection<Item> Items { get; set; }
public Category()
{
Items = new ObservableCollection<Item>();
}
}
现在。我有一个列表框绑定到类别,我有另一个绑定到第一个列表框中SelectedItem的项目。所以:
<ListBox x:Name="FirstListBox" ItemsSource={Binding Categories} />
<ListBox ItemsSource="{Binding Path=SelectedItem.Items, ElementName=FirstListBox}" />
现在,这很好用。但是,我按设定的时间间隔获取列表框的新数据。我遇到的问题是,当新数据进入并将其设置为Categories时,FirstListBox的SelectedItem会发生变化,因此我会丢失第二个ListBox中的填充项。我推测是因为我每次轮询数据时都会清除类别并重新添加它们。
currentData.Categories.Clear();
foreach (Category category in newData.Categories)
{
currentData.Categories.Add(category);
}
有没有人知道解决这个问题的方法?