绑定到SelectedItem中的ObservableCollection

时间:2012-05-04 10:01:28

标签: c# silverlight data-binding mvvm

我正在使用Silverlight进行开发,现在我想将我的ComboBox绑定到ObservableCollection。但是,ObservableCollection在我的SelectedItem中,所以我不确定它是否能够按照我的预期运行。

我已尝试ItemsSource={Binding SelectedItem.SourceList}ItemsSource={Binding Path=SelectedItem.SourceList},但两种方式都没有提供我想要的输出。

如果有人有任何想法...... 非常感谢

编辑:对象内的ObservableCollection是BerthList。此BerthList中的项目受用户先前选择的Port限制。如果我将Observable的ObservableCollection放在ViewModel中,那么就会出现问题。

假设A港有A和B泊位;港口B有泊位C和D.如果我为我的第一个项目选择一个港口A /泊位A组合(我们只是将这个项目称为时间表),那么当我转到下一个项目并选择港口时B,bam,我的第一个项目的泊位选择消失了,因为泊位列表不再有A口。

我想知道这是否有助于解释事情......

2 个答案:

答案 0 :(得分:0)

您的模型听起来有点奇怪,不确定为什么您选择的项目会包含实际来源 - 如果您提供了有关您域名的更多信息,这可能会有所帮助。即你的课程是什么?

无论如何,绑定问题很可能是Source。如果您没有显式提供源,则绑定使用DataContext作为源(此tutorial I wrote on databinding可能有助于您理解此概念)。无论如何,要修复它,将源设置为ComboBox ...

<ComboBox x:Name="myCombo"
          ItemsSource={Binding SelectedItem.SourceList, ElementName=myCombo}">

答案 1 :(得分:0)

要在组合框中使用SelectedItem,您需要先拥有ItemSource。 看来你解决这个问题的方法并不正确。

尝试找到ObservableCollection与SelectedItem无关的方法。