Как очистить DatePicker через привязку с SelectedDate - PullRequest
0 голосов
/ 31 января 2012

У меня есть средство выбора даты со следующей привязкой.

<Controls:DatePicker SelectedDate="{Binding Person.BirthDate, Mode=TwoWay}" />
<Button Content="Clear" Command="{Binding ClearDateOperation}" />

Это класс "Person":

public class Person
{
    public DateTime? BirthDate { get; set; }
}

Начальное значение BirthDate равно нулю.Проблема, которую я хочу исправить, может быть воспроизведена следующим образом:

  1. Пользователь ввел «cvgdfgfg» в DatePicker
  2. Нажмите кнопку «Очистить».
  3. DatePicker после этого не очищается.

Это реализация ClearDateOperation

ClearDateCommand = new DelegateCommand(ClearDate);

private void ClearDate()
        {
            Person.BirthDate = null;
        }

Есть идеи?Заранее спасибо.

пс.Я использую Silverlight 4, .NET 4, VS 2010 PS.Вы можете скачать простой пример с вопросом по этой ссылке. Приложение Silverlight

Ответы [ 2 ]

0 голосов
/ 31 января 2012
Person.BirthDate = DateTime.MinDate

или что-то в этом роде

0 голосов
/ 31 января 2012

похоже, что вам нужно реализовать INotifyPropertyChanged:

public class Person : INotifyPropertyChanged
{
    private DateTime? m_BirthDate;

    public DateTime? BirthDate
    { 
     get { return m_BirthDate;}
     set
      { 
         m_BirthDate = value;
         this.OnPropertyChanged("BirthDate");
      }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected void OnPropertyChanged(string propertyName)
    {
        if (this.PropertyChanged != null)
            this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }
}
...