是否可以有一个条件设置器,大于 0 值?

vla*_*c77 1 wpf binding wpf-controls

如何将 setter 分配给条件值(例如 more than )0?如果值不是,我需要隐藏一个对象0。最好的方法是什么?任何想法都受到高度赞赏。

XAML 示例DataTrigger

<DataTrigger Binding="{Binding Role.Count}" Value="0">
    <Setter TargetName="Counts" Property="Visibility" Value="Hidden" />
</DataTrigger>
Run Code Online (Sandbox Code Playgroud)

Naw*_*waz 6

编写一个值转换器,例如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>
Run Code Online (Sandbox Code Playgroud)

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
}
Run Code Online (Sandbox Code Playgroud)