我正在使用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口。
我想知道这是否有助于解释事情......
答案 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无关的方法。