【问题标题】:Data change notification in Silverlight listbox with databinding to WCF ServiceSilverlight 列表框中的数据更改通知与 WCF 服务的数据绑定
【发布时间】:2011-01-15 21:43:30
【问题描述】:

我继承了一些 Silverlight\WCF 代码,现在需要实现一些新功能。我对 Silverlight\WCF 相当陌生,所以我的问题可能相当基本。所以...

我在 Silverlight 中有一个列表框,它绑定到一个资源,该资源是从 WCF(rest)服务返回的 List(它只是从 db 表中读取值)。我已经实现了通过 WCF 服务向 db 表添加新项目的功能,现在想要在将列表框添加到 db 后对其进行更新。

我的初始代码可能需要更改,因此我在下面列出了相关行。

在 xaml 中资源是这样的:

<CollectionViewSource x:Key="myWCFSvc">
  <CollectionViewSource.SortDescriptions>
    <scm:SortDescription Direction="Ascending" PropertyName="ID" />
  </CollectionViewSource.SortDescriptions>
</CollectionViewSource>

而listbox的绑定是:

ItemsSource="{Binding Source={StaticResource myWCFSvc}}

而且 .cs 在回调中有

((CollectionViewSource)LayoutRoot.Resources["WCFSvc"]).Source = myList;

现在,如果用户通过另一个 Silverlight 子窗口添加新条目,则会在数据库中创建一个新条目,我想更新列表框以包含该条目。我不清楚如何做到这一点。

我知道有 observablecollections 和 INotifyPropertyChanged 但不确定这是否是我需要的,或者如何在这种情况下使用它们。我搜索了一下,但我发现的例子似乎不适合我的场景。

【问题讨论】:

    标签: wcf silverlight data-binding


    【解决方案1】:

    你原来的想法是正确的,你要找的类型是ObservableCollection&lt;T&gt;

    如果您用此替换现有的List,那么当其他代码对其成员资格进行更改时,它将通知其他相关方,例如CollectionViewSource,而后者又会通知任何对其具有约束力的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-07
      相关资源
      最近更新 更多