Проблема в привязке данных wpf - PullRequest
1 голос
/ 02 августа 2011

У меня есть текстовое поле, которое связывается со свойством int ProductPrice и кнопкой, которая отключается, если я помещаю в текстовое поле некоторые неправильные данные (например, число, которое <= 0): </p>

<TextBox Grid.Row="4" Grid.Column="2"
                 Text="{Binding ProductPrice, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"
                 Validation.ErrorTemplate="{StaticResource ValidationErrorTemplate}"/>

        <Button HorizontalAlignment="Right" Command="{Binding Path=DataContext.AddProductCommand,
            RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"
                Margin="2" Width="60" Grid.Row="6" Grid.Column="2" Content="Add" />

Но если я помещаю в текстовое поленекоторый текст, то кнопка не отключена.Я думаю это потому, что свойство ProductPrice не изменилось, потому что было сгенерировано какое-то исключение.При этом валидация работает нормально.Что мне делать?

1 Ответ

1 голос
/ 02 августа 2011

Попробуйте установить {Binding ProductPrice Mode=TwoWay}

Кстати, какие исключения выбрасываются?

РЕДАКТИРОВАТЬ : Отвечать на комментарии

Я вижу два вариантакоторые у вас есть:

  1. Введите свойство string ProductPriceValue (под обложкой используйте оригинал типа int) и привяжите к нему текстовое поле
  2. Реализуйте IValueConverter и используйте егов привязке

Просто интересно, почему вы не используете тип double для ProductPrice свойство

...