【问题标题】:Binding to ObservableCollection in SelectedItem绑定到 SelectedItem 中的 ObservableCollection
【发布时间】:2012-05-04 10:01:28
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: c# silverlight data-binding mvvm


    【解决方案1】:

    要在您的组合框中有一个 SelectedItem,您首先需要有 ItemSource。 看来您解决问题的方法不正确。

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • ElementName 有什么作用?我已经编辑了我的帖子,请看一看。 :)
      猜你喜欢
      • 2017-02-02
      • 1970-01-01
      • 2012-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      • 1970-01-01
      相关资源
      最近更新 更多