2013-04-15 171 views
-1

我已经创建了一个DateTime类型的属性。当我在InvokePropertyChanged()事件的标签上设置此属性值时,它显示默认值(1/1/0001 12:00:00)。如果属性没有有效日期,我如何设置空白文本?如何在类型为DateTime的属性中将空白设置为默认值?

public event PropertyChangedEventHandler PropertyChanged; 
private DateTime? _dDateTime = null; 

public DateTime PostedDateTime 
{ 
    get 
    { 
     return _dDateTime.HasValue ? _dDateTime.Value : DateTime.Now; 
    } 
    set 
    { 
     _dDateTime = value; 
     InvokePropertyChanged(new PropertyChangedEventArgs("PostedDateTime")); 
    } 
} 

public void InvokePropertyChanged(PropertyChangedEventArgs e) 
{ 
    PropertyChangedEventHandler handler = PropertyChanged; 
    if (handler != null) 
    { 
     handler(this, e); 
     Refresh(); 
    } 

    if (e.PropertyName.Equals("PostedDateTime")) 
     lblDateTimeDt.Text = PostedDateTime.ToString();// setting datetime in label 

} 
+0

我想你将不得不使用一个可空DateTime和它设置为null,是吗?那样,或者你可以创建一个带有getter和setter属性的DateTime字段,当该值没有被设置时它返回“空白”。 – Nolonar

回答

0

可以assgin之前测试值

public void InvokePropertyChanged(PropertyChangedEventArgs e) 
{ 
    PropertyChangedEventHandler handler = PropertyChanged; 
    if (handler != null) 
    { 
     handler(this, e); 
     Refresh(); 
    } 

    if (e.PropertyName.Equals("PostedDateTime")) 
    lblDateTimeDt.Text = PostedDateTime == DateTime.MinValue ? "" : PostedDateTime.ToString(); 

}

相关问题