2009-11-30 6 views
1

Silverlight에서 CollectionViewSource를 구현할 때 약간의 문제가 있습니다. 나는이 주제에서 새롭기 때문에 기본적으로 웹을 통해 검색 한 내용을 따르고 있습니다. 지금까지 내가 해왔 던 일이 여기있다. 나는 HierarchicalDataTemplate 내 TestCVS을 결합하고있어 다음Silverlight에서 CollectionViewSource를 사용할 때의 문제

<UserControl.Resources> 
    <CollectionViewSource x:Key="TestCVS"> 
     <CollectionViewSource.SortDescriptions> 
      <scm:SortDescription PropertyName="Value" Direction="Ascending" /> 
     </CollectionViewSource.SortDescriptions> 
    </CollectionViewSource> 
    </UserControl.Resources> 

:

나는 자원 태그에 CollectionViewSource를 만드는거야

<common:HierarchicalDataTemplate ItemsSource="{Binding Source={StaticResource TestCVS}}"> 
    <common:HierarchicalDataTemplate.ItemTemplate> 
    <common:HierarchicalDataTemplate> 
     <Border BorderBrush="#FF464646" BorderThickness="1" CornerRadius="3" Padding="5"> 
     <Grid> 
      <Grid.RowDefinitions> 
      <RowDefinition /> 
      <RowDefinition /> 
      </Grid.RowDefinitions> 
      <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto"/> 
      <ColumnDefinition Width="*"/> 
      </Grid.ColumnDefinitions> 
      <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> 
      <TextBlock TextWrapping="Wrap" Text="{Binding MyClassField}"/> 
      </StackPanel> 
     </Grid> 
     </Border> 
    </common:HierarchicalDataTemplate> 
    </common:HierarchicalDataTemplate.ItemTemplate> 
</common:HierarchicalDataTemplate> 

를 이제 코드에서 나는 할당있어 뒤에 다음과 같은 속성의 TestCVS 소스 :

private ObservableCollection<MyClass> _MyClass; 
public ObservableCollection<MyClass> MyClass  
{ 
    get { return _MyClass; } 
    set 
    { 
     var testCVS = (this.Resources["TestCVS"] as CollectionViewSource); 

     if (testCVS != null) 
     testCVS.Source = value; 
    } 
} 

테스트를 마친이 realiz 정보가 화면에 나타나지 않고 왜 나는 실제로 알지 못합니다. 누군가이 문제에 대해 저를 도울 수 있습니까?

희망이 있으시면 미리 감사드립니다.

답변

0

매번 소스를 재설정 할 필요가 없습니다. this.TestCVS = CollectionViewSource.GetDefaultView (myCollection);를 사용해야합니다. 로드 된 이벤트에 추가 한 다음 myCollection에서 추가 및 제거하십시오. ObservableCollection을 사용하면 무료로 변경 알림을받을 수 있습니다. 이 아이디어를 철저히 테스트하지는 않았지만 이론적으로는 잘 작동합니다.

편집 : 그것은 GetDefaultView은 실버 만 WPF 존재하지 않습니다 밝혀졌습니다. 나는 그룹화를 위해 PagedCollectionView (myCOllection)를 성공적으로 사용했다.

관련 문제