Привязка WPF с неверным значением для источника - PullRequest
2 голосов
/ 19 февраля 2010

У меня есть TextBox, который связывается с целочисленным свойством.

Что я могу сделать, чтобы, когда в TextBox ничего нет допустимого текста, для свойства было установлено значение 0.

Действительно, я думаю, что это можно расширить, чтобы в случае сбоя привязки мы установили источник по умолчанию (T).

Мне нужно подтолкнуть в правильном направлении.

TargetNullValue противоположен тому, что я ищу (я думаю), который устанавливает текст TextBox, когда источник нулевой. Я хочу, чтобы текст TextBox был недопустимым значением привязки, чтобы установить источник по умолчанию.

1 Ответ

4 голосов
/ 19 февраля 2010

Применение Converter, такого как следующее, к вашей привязке должно помочь:

public class TextConverter : IValueConverter
{
    public object Convert(object value, Type targetType,
        object parameter, CultureInfo culture)
    {
        int actual = (int)value;

        return actual.ToString();
    }

    public object ConvertBack(object value, Type targetType,
        object parameter, CultureInfo culture)
    {
        string actual = (string)value;

        int theValue = 0;
        int.TryParse(actual, out theValue);

        return theValue;
    }
}

Ваша TextBox привязка будет выглядеть примерно так:

<TextBox Text="{Binding ... Converter={StaticResource convert}}"></TextBox>

С преобразователем, определенным как ресурс вашего Window / Control /...

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