Возможно ли иметь условный установщик, значение которого больше 0? - PullRequest
1 голос
/ 26 января 2011

Как назначить сеттер условному значению, например, более 0?Мне нужно скрыть объект, если значение не будет 0.Каков будет лучший способ сделать это?Любые идеи высоко ценятся.

XAML пример DataTrigger:

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

1 Ответ

3 голосов
/ 26 января 2011

Написать преобразователь значения, скажем 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
}
...