的CollectionViewSource.GetDefaultView()
方法是在Silverlight 3在WPF不我有這樣的擴展方法:CollectionViewSource.GetDefaultView不在Silverlight 3中!什麼是解決方法?
public static void SetActiveViewModel<ViewModelType>(this ViewModelBase viewModel,
ViewModelType collectionItem,
ObservableCollection<ViewModelType> collection) where ViewModelType : ViewModelBase
{
Debug.Assert(collection.Contains(collectionItem));
ICollectionView collectionView = CollectionViewSource.GetDefaultView(collection);
if(collectionView != null) collectionView.MoveCurrentTo(collectionItem);
}
怎麼可以這樣寫在Silverlight 3?
這不起作用。既然你已經創建了一個CollectionViewSource的新實例,你將得到一個沒有任何綁定的View。因此MoveCurrentTo沒有影響。在綁定到集合的WPF控件中,實際上會綁定到該集合的默認視圖,原始代碼將獲取該默認視圖並對其進行操作,從而影響綁定到該集合的任何東西。 – AnthonyWJones 2010-03-27 21:49:17