Wpf Timepicker Updatesourcetrigger=propertychanged不更改值

Wpf Timepicker Updatesourcetrigger=propertychanged不更改值,wpf,data-binding,wpftoolkit,Wpf,Data Binding,Wpftoolkit,我正在windows窗体中托管一个WPF用户控件 在wpf用户控件中,我使用的是wpfToolkit.extended中的时间选择器 如果我使用向上键或向下键,或者只是在文本字段中输入一个时间,则尽管我使用的是Updatesourcetrigger=propertychanged,但源不会全部更新 当我在下拉列表中选择一个时间时,一切都按它应该的方式运行。 这是工具箱的名称空间 xmlns:xctk="clr-namespace:Xceed.Wpf.Toolkit;assembly=WPFToo

我正在windows窗体中托管一个WPF用户控件 在wpf用户控件中,我使用的是wpfToolkit.extended中的时间选择器

如果我使用向上键或向下键,或者只是在文本字段中输入一个时间,则尽管我使用的是Updatesourcetrigger=propertychanged,但源不会全部更新

当我在下拉列表中选择一个时间时,一切都按它应该的方式运行。 这是工具箱的名称空间

xmlns:xctk="clr-namespace:Xceed.Wpf.Toolkit;assembly=WPFToolkit.Extended"
这是时间选择器的xaml

  <xctk:TimePicker  Format="LongTime" TimeInterval="00:15:00.000" Value="{Binding Path=StartTime, UpdateSourceTrigger=PropertyChanged}" ></xctk:TimePicker>
如果我在WPFusercontrol之外单击,而不首先将焦点更改为WPFusercontrol中的另一个控件。绑定时间不会更新

你知道如何解决这个问题吗?

计时器是否有文本属性?如果是这样,请尝试绑定到它

我认为这种行为可能是为了防止在键入时绑定到错误的日期时间。我猜当焦点丢失时,它会尝试设置属性并进行错误检查。如果它在您键入时执行此操作,则在您进行更改(例如删除字符)时,它将不断更改值


键入时是否有特定的操作?

找到了此问题的解决方案: 在本例中,我给了时间选择器一个名称“tpFrom”,然后在时间选择器上使用了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>

现在,每次文本更改,值也会更改,问题就解决了:-

它没有文本属性问题并不是在这个时间选择器中输入不顺利,而是使用箭头来增加和减少小时数等等。。。。如果我在wpf用户控件外按了一个保存按钮,则值中没有更改。在我的例子中,在TextChanged之后,它必须将焦点移开并返回到DateTimePicker以触发事件链:SubView.focus;SubView.dtpSince.Focus;
  private void TimePicker_TextChanged(object sender, TextChangedEventArgs e)
    {
        tpFrom.Focus();            
    }