Silverlight MVVM - Twoway привязка не срабатывает на Datepicker - PullRequest
2 голосов
/ 28 марта 2011

У меня есть приложение Silverlight MVVMLight 4.0, в котором есть средство выбора даты.

Datepicker является двухсторонней привязкой к модели представления. Там нет кода позади.

Это прекрасно работает при добавлении табуляции в текстовом поле datepickers и изменит основное свойство объекта.

Но когда я изменяю текстовое поле, не убираю вкладки и не нажимаю кнопку Сохранить, изменение не регистрируется.

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

  private void startDateDatePicker_TextInput(object sender, System.Windows.Input.TextCompositionEventArgs e)
    {

    }

    private void startDateDatePicker_TextInputStart(object sender, System.Windows.Input.TextCompositionEventArgs e)
    {

    }

    private void startDateDatePicker_TextInputUpdate(object sender, System.Windows.Input.TextCompositionEventArgs e)
    {

    }

    private void startDateDatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
    {

    }

У кого-нибудь есть обходной путь для этого?

С уважением,

Pat

Ответы [ 2 ]

2 голосов
/ 28 марта 2011

Я вполне уверен, что TextBox должен потерять фокус перед обновлением свойства.

Вы можете попробовать обработать событие KeyDown TextBox и обновить свойство оттуда, но я не уверен, насколько хорошо это будет вести себя.

0 голосов
/ 28 марта 2011

Измените значение UpdateSourceTrigger в вашей привязке.Если не установлено, используется значение по умолчанию (которое является Потерянным Фокусом для TextBox.Text). В зависимости от внутренней работы и потребностей вашего экрана вы можете установить для него значение PropertyChanged или Explicit.

http://msdn.microsoft.com/en-us/library/ms752347.aspx

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