Пример XAML:
<ProgressBar>
<ProgressBar.Resources>
<src:DoubleToVisibilityConverter x:Key="_doubleToVisibilityConverter" />
</ProgressBar.Resources>
<ProgressBar.Visibility>
<Binding
RelativeSource="{RelativeSource Self}"
Path="Value"
Converter="{StaticResource _doubleToVisibilityConverter}"
/>
</ProgressBar.Visibility>
</ProgressBar>
И код:
public class DoubleToVisibilityConvertor : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
double input = 0;
if (value is double)
{
input = (double)value;
}
else if (value is int)
{
input = (int)value;
}
else if (value is string) // Useful if input of converter is written in XAML
{
if (!double.TryParse((string)value, out input))
return Binding.DoNothing;
}
else
{
return Binding.DoNothing;
}
return (input > 0 ? Visibility.Visible : Visibility.Collapsed);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return Binding.DoNothing;
}
}
Отказ от ответственности: записано из памяти, не скомпилировано или протестировано.