4

WindowsフォームでWPFユーザーコントロールをホストしていますwpfユーザーコントロールでは、wpfToolkit.extendedのタイムピッカーを使用しています

Up キーまたは Down キーを使用するか、テキストフィールドに時間を入力するだけでは、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>

最初に wpf usercontrol 内の別のコントロールにフォーカスを変更せずに WPFusercontrol の外側をクリックすると。Binded 時間は更新されません。

どうすればこれを修正できますか?

4

2 に答える 2

4

この問題の解決策を見つけました: 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>

イベントハンドラのコード ビハインドでは、タイムピッカーに焦点を当てます。

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

テキストが変更されるたびに、値も変更され、問題は解決されます:-)

于 2013-02-15T15:13:44.700 に答える
0

TimePicker には Text プロパティがありますか? その場合は、代わりにそれにバインドしてみてください。

この動作は、入力時に不適切な日時にバインドするのを防ぐためだと思います。フォーカスが失われると、プロパティを設定しようとし、エラーチェックを行うと思います。入力中にこれを行うと、変更を行うたびに値が常に変更されます(文字の削除など)。

入力時に何か具体的にしようとしていることはありますか?

于 2013-02-15T13:33:38.943 に答える