2011-01-25 6 views
0

0과 같은 조건부 값에 setter를 할당하는 방법은 무엇입니까? 가치가 0이 아니면 객체를 숨길 필요가 있습니다. 어떻게해야할까요? 모든 ifeas 매우 높게 평가됩니다. DataTrigger의0보다 큰 조건부 설정자가 가능합니까?

XAML 예 :

<DataTrigger Binding="{Binding Role.Count}" Value="0"> 
    <Setter TargetName="Counts" Property="Visibility" Value="Hidden" /> 
</DataTrigger> 

답변

2

가 값 계산기를 작성,

<Window.Resources> 
     <local:IsGreaterThanZero x:Key="isGreaterThanZero"/> 
</Window.Resources> 

<DataTrigger Binding="{Binding Role.Count, Converter={StaticResource isGreaterThanZero}" Value="True"> 
    <Setter TargetName="Counts" Property="Visibility" Value="Hidden" /> 
</DataTrigger> 

그리고 IsGreaterThanZero

은 다음과 같이 쓸 수로 IsGreaterThanZero는, 다음 XAML을 쓰기 말할

public class IsGreaterThanZero: IValueConverter 
{ 
     #region IValueConverter Members 
     public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
     { 
      return Int32.Parse(value as string) > 0; 
     } 

     public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
     { 
      throw new NotImplementedException() ;//"PresenterConverter.ConvertBack() is not implemented!"); 
     } 
     #endregion 
} 
+0

감독자! 고맙습니다! – vladc77

+0

@ vladc77 : XAML에서 "지역"의 의미를 알기를 바랍니다. 값 변환기를 정의하는 프로젝트의 이름 공간 별칭 일뿐입니다! – Nawaz

+0

예, 알고 있습니다. 다시 감사합니다. – vladc77

관련 문제