WPF:基于另一个列表框选定项绑定到列表框

时间:2014-05-01 10:21:13

标签: wpf xaml data-binding listbox

我有一个对象列表(让我们称之为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);
}

有没有人知道解决这个问题的方法?

0 个答案:

没有答案