2013-02-15 3 views
2

Я хостинг UserControl WPF в форме окна В пользовательский элемент управления WPF Я использую timepicker из wpfToolkit.extendedTimepicker UpdateSourceTrigger = PropertyChanged не изменяет значение

Если я использую вверх или downkeys или просто введите время в текстовое поле, источник не обновляется, хотя я использую Updatesourcetrigger = propertychanged.

Когда я выбираю время в dropdrownlist, все работает так, как должно. Это пространство имен инструментария.

xmlns:xctk="clr-namespace:Xceed.Wpf.Toolkit;assembly=WPFToolkit.Extended" 

Это XAML для timepicker

<xctk:TimePicker Format="LongTime" TimeInterval="00:15:00.000" Value="{Binding Path=StartTime, UpdateSourceTrigger=PropertyChanged}" ></xctk:TimePicker> 

Если я нажимаю вне WPFusercontrol без изменения фокуса на другой элемент управления в WPF UserControl в первую очередь. Время привязки не обновляется.

Любая идея, как я могу это исправить?

ответ

2

Обнаружено решение этой проблемы: Я дал TimePicker имя (в данном случае 'tpFrom'), то я использовал событие TextBoxBase.TextChanged в TimePicker. Это то, что Xaml выглядит сейчас:

<xctk:TimePicker Name="tpFrom" Format="LongTime" TextBoxBase.TextChanged="TimePicker_TextChanged" TimeInterval="00:15:00.000" Value="{Binding Path=StartTime, UpdateSourceTrigger=PropertyChanged}"></xctk:TimePicker> 

В коде позади в нашем EventHandler мы поставим акцент на нашем timepicker.

private void TimePicker_TextChanged(object sender, TextChangedEventArgs e) 
    { 
     tpFrom.Focus();    
    } 

Теперь каждый раз текстовые изменения, изменения стоимости, а также и проблема решена :-)

0

Имеет ли свойство TimePicker свойство Text? Если это так, попробуйте привязаться к этому.

Я думаю, что такое поведение может быть связано с тем, что вы не привязываетесь к плохому дат-времени по мере ввода. Я бы предположил, что когда фокус потерян, он пытается установить свойство и выполняет проверку ошибок. Если бы это произошло, когда вы ввели его, он постоянно менял бы значение в любое время, когда вы вносили изменения (например, удалите символ).

Есть ли что-то конкретное, что вы пытаетесь сделать по мере ввода?

+0

Это не имеет свойства текста –

+0

Проблема на самом деле не печатает (не идет хорошо в этот timepicker), но используя стрелки для увеличения и уменьшения часов и т. д. Если я нажимаю кнопку сохранения вне пользовательского элемента управления wpf, изменения не были в значении. –

Смежные вопросы