2010-02-11 81 views
1

我繼承了一些Silverlight \ WCF代碼,現在需要實現一些新功能。我相當新的Silverlight \ WCF所以我的問題可能是相當基本的。所以...Silverlight列表框中的數據更改通知,數據綁定到WCF服務

我有一個Silverlight中的列表框,它綁定到一個WCF(休息)服務(它只是讀取數據庫表中的值)返回的列表<>的資源。我已經實現了通過WCF服務將新項目添加到數據庫表格的功能,並且現在想要在添加到數據庫後對列表框進行更新。

有可能我的初始代碼需要更改,所以我列出了下面的相關行。

在XAML資源是這樣的:

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

而且列表框的結合是:

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

而且具有的.cs在回調

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

所以現在如果用戶通過另一個Silverlight子窗口添加新條目,則會在數據庫中創建一個新條目並且我想要更新列表框包含此條目。我不清楚如何做到這一點。

我知道有observablecollections和INotifyPropertyChanged,但不確定這是否是我需要的,或者如何在這種情況下使用它們。我搜索了一下,但我發現的例子似乎不適合我的場景。

回答

0

你的原始想法是正確的,你正在尋找的類型是ObservableCollection<T>

如果替換現有List這一然後根據變化被其他代碼,就會通知其他有關各方如CollectionViewSource,這反過來會通知點兒被綁定到它使其成員。