Изменить значение привязки в XAML - PullRequest
2 голосов
/ 19 апреля 2011

Мне нужно сделать сложное связывание в XAML.У меня есть DependencyProperty typeof(double);давайте назовем это SomeProperty.Где-то в коде моего элемента управления XAML мне нужно использовать полное значение SomeProperty, где-то только половину, где-то SomeProperty/3 и т. Д.

Как мне сделать что-то вроде:

<SomeControl Value="{Binding ElementName=MyControl, Path=SomeProperty} / 3"/>

:)

Ожидание.

1 Ответ

7 голосов
/ 19 апреля 2011

Используйте деление ValueConverter:

public class DivisionConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        int divideBy = int.Parse(parameter as string);
        double input = (double)value;
        return input / divideBy;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotSupportedException();
    }
}
<!-- Created as resource -->
<local:DivisionConverter x:Key="DivisionConverter"/>

<!-- Usage Example -->
<TextBlock Text="{Binding SomeProperty, Converter={StaticResource DivisionConverter}, ConverterParameter=1}"/>
<TextBlock Text="{Binding SomeProperty, Converter={StaticResource DivisionConverter}, ConverterParameter=2}"/>
<TextBlock Text="{Binding SomeProperty, Converter={StaticResource DivisionConverter}, ConverterParameter=3}"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...