2011-01-25 68 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

相關問題