Timepicker Updatesourcetrigger=propertychanged doesn't change value

对着背影说爱祢 提交于 2019-12-01 20:29:08

问题


I'm hosting a WPF usercontrol in a windows form In the wpf user control I am using a timepicker from wpfToolkit.extended

If I use the up or downkeys or just enter a time in the textfield the source is not updated allthough I am using Updatesourcetrigger = propertychanged.

When I select a time in the dropdrownlist everything works the way it should. This is the namespace of the toolkit.

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

This is the xaml for the timepicker

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

If I click outside the WPFusercontrol without changing the focus to another control in the wpf usercontrol first. The Binded time is not updated.

Any idea how I can fix this?


回答1:


Found a solution for this problem: I've given the TimePicker a name (In this case 'tpFrom') then I've used the TextBoxBase.TextChanged event on the TimePicker. This is what the Xaml looks like now:

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

In the code behind in our eventhandler we'll put the focus on our timepicker.

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

Now everytime the text changes, the value changes as well and the problem is solved :-)




回答2:


Does the TimePicker have a Text property? If so, try binding to that instead.

I think this behavior might be to prevent you from binding to a bad datetime as you type. I would guess that when focus is lost it tries to set the property and does error checking. If it did this while you typed it would constantly be changing the value anytime you make a change (say delete a character).

Is there something specific you are trying to do as you type?



来源:https://stackoverflow.com/questions/14895507/timepicker-updatesourcetrigger-propertychanged-doesnt-change-value

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!