2013-02-15 86 views
2

我托管在Windows窗体 一个WPF用户控件在WPF用户控件我使用的是timepicker从wpfToolkit.extendedTimepicker Updatesourcetrigger =的PropertyChanged不会改变价值

如果我使用向上或downkeys或只需在textfield中输入一个时间源不会更新allthough我正在使用Updatesourcetrigger = propertychanged。

当我在dropdrownlist中选择一个时间时,一切都按照它应该的方式工作。 这是工具包的命名空间。

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

这是timepicker的XAML

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

如果我点击WPFusercontrol外不改变焦点在WPF用户控件先在另一台控制。绑定时间未更新。

任何想法如何解决这个问题?

回答

2

找到了这个问题的解决方案: 我给了TimePicker一个名字(在本例中为'tpFrom'),然后我使用了TimePicker上的TextBoxBase.TextChanged事件。 这是XAML中貌似现在:

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

在后面的代码在我们的事件处理程序,我们会把重点放在我们的timepicker。

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

现在每次文字的变化,价值的变化,以及和问题解决:-)

0

TimePicker是否具有Text属性?如果是这样,请尝试绑定到那个。

我认为这种行为可能是为了防止您键入时绑定到错误的日期时间。我猜测当焦点丢失时,它会尝试设置属性并进行错误检查。如果它在你输入的时候这样做了,它会在你改变任何时候不断改变它的值(比如删除一个字符)。

有没有什么具体的事情,你正在尝试做你打字?

+0

它不具有文本属性 – 2013-02-15 13:38:05

+0

这个问题是不是真的打字(不进展顺利在这个时间选择器中),但使用箭头来增加和减少小时数等....如果我按下wpf用户控件之外的保存按钮,更改不在该值中。 – 2013-02-15 15:16:02

相关问题