2

我得到了下面的XAML CollectionViewSource定義:當是CollectionViewSource來源屬性集,如果viewSource是靜態資源

<UserControl.Resources> 
     <CollectionViewSource x:Key="PersonsViewSource" Source="{Binding AvailablePersons}"> 
      <CollectionViewSource.SortDescriptions> 
       <scm:SortDescription PropertyName="Surname" Direction="Ascending" /> 
      </CollectionViewSource.SortDescriptions> 
     </CollectionViewSource> 
    </UserControl.Resources> 

我綁定到該CVS組合框,並想從這樣的代碼訪問查看:

(Resources["PersonsViewSource"] as CollectionViewSource).View 

不過即使我嘗試InitializeComponent()後或Loaded event處理程序查看&源來訪問它在構造函數中仍然null

當應用程序在瀏覽器中顯示給我,雖然已經發生綁定,如果我現在把某個斷點放在某處查看&源現在不爲空。

那麼,什麼時候確切是來源集?我在哪裏可以訪問加載我的應用程序的舞臺上的視圖?

也許這對於viewource來說並不是真的一般的綁定問題,什麼時候是靜態資源綁定集?

回答

1

結合被初始化時設定,因爲這行被解析:

<CollectionViewSource x:Key="PersonsViewSource" Source="{Binding AvailablePersons}"> 

但無論當時在AvailablePersons財產存在數據綁定點。在任何相關的異步加載完成之前它將保持爲空。

使用Silverlight,您通常對數據加載的事件感興趣,而不是當可視化樹顯示時。

您能告訴我們更多關於如何爲AvailablePersons獲取數據的信息嗎?

+0

當然,可用人員不會被提取(這是一個樣本名稱),實際上,此值(ObservableCollection )在viewmodel構造函數中設置,並且包含10個可在沒有任何數據加載或服務調用的情況下可用的項目。 http://stackoverflow.com/questions/6305608/how-to-preserve-twoway-binding-of-currentitem-when-databinding-to-collectionviews這裏是完整的代碼和另一個問題。 – 2011-06-11 10:18:54