2011-01-25 55 views
0

如何将setter分配给条件值,例如大于0?如果值不为0,我需要隐藏一个对象。最好的方法是什么?任何ifeas高度赞赏。 DataTrigger的是否有可能拥有一个有条件的setter,超过0的值?

XAML例如:

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

回答

2

写值转换器,说IsGreaterThanZero,然后再编写XAML为,

<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

超!谢谢! – vladc77 2011-01-26 00:01:06

相关问题