Как я могу сделать сбой PriorityBinding, если возвращаемое значение равно Null? - PullRequest
7 голосов
/ 14 июля 2010

У меня есть PriorityBinding

<PriorityBinding FallbackValue="Bindings were null">
    <Binding Path="Foo" />
    <Binding Path="Bar" />
</PriorityBinding>

Я хотел бы сделать так, что если Foo равно null, он будет использовать Bar, а если оба равны null, он будет использовать FallbackValue.Однако значение null является допустимым значением для этого свойства, поскольку оно ожидает только объект.

Можно ли как-нибудь продвинуть PriorityBinding к следующей привязке, если значение равно NULL?Я бы предпочел сделать это в XAML, но если я не смогу, я просто сделаю конвертер для него.

Редактировать

В итоге я просто написалконвертер для него

public class NullToDependencyPropertyUnsetConverter 
    : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return value ?? DependencyProperty.UnsetValue;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

1 Ответ

5 голосов
/ 14 июля 2010

Я бы пошел с преобразователем значения, возвращающим UnsetValue, если значение привязки равно нулю.

Приоритетные привязки более полезны, если вы хотите поделиться табличкой данных между различными типами объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...