Skip to content

Commit dac14f7

Browse files
committed
Fix issue( #105
Fix issue( #105
1 parent c0dae74 commit dac14f7

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

src/WPFDevelopers.Shared/Controls/TimePicker/TimePicker.cs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ public override void OnApplyTemplate()
8787
{
8888
base.OnApplyTemplate();
8989
_textBox = GetTemplateChild(EditableTextBoxTemplateName) as TextBox;
90+
if (_textBox != null)
91+
_textBox.TextChanged += TextBox_TextChanged;
9092
_timeSelector = GetTemplateChild(TimeSelectorTemplateName) as TimeSelector;
9193
if (_timeSelector != null)
9294
{
@@ -111,12 +113,25 @@ public override void OnApplyTemplate()
111113
}
112114
}
113115

116+
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
117+
{
118+
if (_textBox != null)
119+
{
120+
_timeSelector.SelectedTimeChanged -= TimeSelector_SelectedTimeChanged;
121+
if (DateTime.TryParse(_textBox.Text, out var dateTime))
122+
{
123+
if (SelectedTime.HasValue && dateTime.ToString(SelectedTimeFormat) == SelectedTime.Value.ToString(SelectedTimeFormat)) return;
124+
SelectedTime = dateTime;
125+
}
126+
else
127+
SelectedTime = null;
128+
_timeSelector.SelectedTimeChanged += TimeSelector_SelectedTimeChanged;
129+
}
130+
}
114131
private void Popup_Opened(object sender, EventArgs e)
115132
{
116133
if (_timeSelector != null)
117-
{
118134
_timeSelector.SetTime();
119-
}
120135
}
121136

122137
private void TimeSelector_SelectedTimeChanged(object sender, RoutedPropertyChangedEventArgs<DateTime?> e)

0 commit comments

Comments
 (0)