2011-01-25 7 views
0

0より大きいなどの条件付き値にセッターを割り当てる方法はありますか?値が0でない場合はオブジェクトを非表示にする必要があります。これを行うにはどうすればよいでしょうか?どんなifeasも高く評価されます。 DataTriggerの0より大きい条件付きセッターを使用できますか?

XAMLの例:

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

答えて

2

IsGreaterThanZeroを言う、そして

<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が

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

、のように書くことができ、としてあなたのXAMLを記述し、値コンバーターを書きますスーパー!ありがとうございました! – vladc77

+0

@ vladc77:XAMLで「ローカル」が何を意味するのかを知りたいですか?これは、値コンバーターを定義するプロジェクトの名前空間エイリアスです。 – Nawaz

+0

はい、わかります。ありがとうございました。 – vladc77