2012-04-12 45 views

回答

1

XAML:

轉換器:日期時間爲空轉換

public class DateTimeToNullConverter : IValueConverter 

{ 

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     if(System.Convert.ToDateTime(value).ToLongTimeString() != "12:00:00 AM") 
     { 
      return null; 
     } 
     return value; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     if (value == null || value.ToString() == "") 
     { 
      return DateTime.Now; 
     } 
     return value; 
    } 
} 
} 

使用該轉換器的文本,一個日期選擇器的SelectedDate和顯示日期財產 再處理視圖模型中的lostfocus中繼命令用於更多va lidation

private void FromDateLostFocusCommandExecuted(EventArgs args) 
    { 
     //ClearValidationErrors(); 

     string inputDate = 
      ((System.Windows.Controls.Primitives.DatePickerTextBox) 
      (((System.Windows.RoutedEventArgs)(args)).OriginalSource)).Text; 

     if (inputDate != "") 
     { 
      if (!IsValidDate(inputDate)) 
      { 
       ObservableCollection<string> errors = GetErrorsCollection("FromDate"); 
       errors.Add("Please enter a valid From Date (M/d/yyyy)"); 
       RaiseErrorsChanged("FromDate"); 

       if (!validationErrors.Contains("FromDate")) 
       { 
        validationErrors.Add("FromDate"); 
       } 
      } 
      else 
      { 
       ClearValidationErrors("FromDate"); 
       if (validationErrors.Contains("FromDate")) 
       { 
        validationErrors.Remove("FromDate"); 
       } 
      } 
     } 
     else 
     { 
      ClearValidationErrors("FromDate"); 
      if (validationErrors.Contains("FromDate")) 
      { 
       validationErrors.Remove("FromDate"); 
      } 
     } 
    }