fix:修复DateTimePicker VM Binding属性设置为null时 UI不会同步更新的问题
This commit is contained in:
1 parent
81d0c3d248
commit
d7b4361c49
1 file changed
+15
-3
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Windows;
|
||||
@@ -183,6 +183,11 @@ public class DateTimePicker : Control
|
||||
var time = dp.SelectedDateTime.Value;
|
||||
dp.SetTextInternal(dp.DateTimeToString(time));
|
||||
}
|
||||
else
|
||||
{
|
||||
// 修复:当 SelectedDateTime 为 null 时,清空文本框
|
||||
dp.SetTextInternal(string.Empty);
|
||||
}
|
||||
|
||||
dp.RaiseEvent(new FunctionEventArgs<DateTime?>(SelectedDateTimeChangedEvent, dp)
|
||||
{
|
||||
@@ -620,7 +625,8 @@ public class DateTimePicker : Control
|
||||
}
|
||||
|
||||
var d = SetTextBoxValue(s);
|
||||
if (!SelectedDateTime.Equals(d))
|
||||
// 修复:使用静态的 Equals 方法进行安全的 null 比较
|
||||
if (!Equals(SelectedDateTime, d))
|
||||
{
|
||||
SetCurrentValue(SelectedDateTimeProperty, d);
|
||||
SetCurrentValue(DisplayDateTimeProperty, d);
|
||||
@@ -632,12 +638,18 @@ public class DateTimePicker : Control
|
||||
{
|
||||
SetCurrentValue(SelectedDateTimeProperty, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 修复:确保文本框同步清空
|
||||
SetTextInternal(string.Empty);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var d = SetTextBoxValue(_defaultText);
|
||||
if (!SelectedDateTime.Equals(d))
|
||||
// 修复:使用静态的 Equals 方法进行安全的 null 比较
|
||||
if (!Equals(SelectedDateTime, d))
|
||||
{
|
||||
SetCurrentValue(SelectedDateTimeProperty, d);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user