2009-08-14 6 views
0

내 실버 프로젝트에서 트리보기 컨트롤을 사용하고 있습니다. 내 모델을 트리에 바인딩하기 위해 데이터 바인딩을 사용합니다. 이것은 완벽하게 작동합니다.Silverlight 트리보기

나는 두 가지 문제로 실행 트리에 일부 기능을 추가 한 후 :

  1. 내 모델의 속성을 변경, 나무는 내 내 onproperty가 호출되는 변경된 후에도 업데이트되지 않습니다 변환기가 호출되지 않았습니까? (특정 속성이 변경 될 때 항목을 숨길 필요가 있습니다) (답변 됨)

  2. 트리에서 항목을 숨기려면 어떻게해야합니까?

  3. 스택 패널이 숨겨져 있습니다 (I는 항목 템플릿으로 텍스트 상자 + 이미지를 사용), 그러나 빈 용기는 나무에

DataTemplate을 유지 :

   <common:HierarchicalDataTemplate ItemsSource="{Binding Children}"> 
       <StackPanel Orientation="Horizontal" Visibility="{Binding IsAvailable, Converter={StaticResource ItemVisibleConverter} ,Mode=TwoWay}" > 
        <Image Source="{Binding Converter={StaticResource ImageConverter}}"/> 
        <controls:Label Name="myItem" Content="{Binding Description, Converter={StaticResource ItemConverter} ,Mode=TwoWay}" Foreground="Black"/> 
       </StackPanel> 
      </common:HierarchicalDataTemplate> 

변환기 : 공개 개체 변환 (개체 값, 형식 targetType, 개체 매개 변수, ystem.Globalization.CultureInfo culture) { 반환 값 GetVisibility (value); }

 private Visibility GetVisibility(object value) 
    { 
     bool IsVisible= (bool)value; 
     if (IsAvailableForDownload) 
     { 
      return Visibility.Visible; 
     } 
     else 
     { 
      return Visibility.Collapsed; 
     } 
    } 

모델

public class MyModel: INotifyPropertyChanged 
{ 
    public bool IsAvailable 
    { 
     get 
     { 
      return _IsAvailableForDownload; 
     } 
     set 
     { 
      _IsAvailableForDownload = value; 
      onPropertyChanged(this, "IsAvailableForDownload"); 
     } 
    } 

//Code for on property changed event 
} 

감사

+0

데이터 바인딩을 설정 한 Xaml (트리의 HierarchialDataTemplate)과 INotifyPropertyChanged 구현을 보여주는 Model 클래스의 작은 부분을 게시 할 수 있습니까? 변환기 코드를 게시하면 도움이 될 것입니다. –

답변

0
  1. 당신은 아마 당신의 model implements INotifyPropertyChanged 그렇게 바인딩 시스템이 일을 할 수 있는지 확인해야합니다.

  2. 항목 템플릿이 바인딩하는 가시성 유형의 속성을 가질 수 있습니까, 아니면 가시성 값을 반환하는 값 변환기를 더할 수 있습니까?

    < DataTemplate을 > < 그리드 가시성 = "{바인딩 ThisThingsIsVisible}"> < 버튼 내용 = "{바인딩 ㅋ}"/ > </그리드 > </DataTemplate을 >

I 이것이 권장 방법인지 아닌지 모르겠다. 바인딩 된 객체가 숨겨진 항목을 컬렉션에 표시 할 수 없습니까?

+0

안녕하세요 제프, 정말 고마워요. Inotify가 내 첫 번째 문제를 해결했지만 여전히 2 번에서 3 번으로 어려움을 겪고 있습니다. 어떤 충고? –

+0

오류가 발생하거나 데이터 개체 또는보기 모델에 가시성을 추가하는 방법에 대한 지침을 찾으십니까? –