如何通过与SelectedDate绑定来清除DatePicker

时间:2012-01-31 15:58:36

标签: .net wpf silverlight

我有一个日期选择器,具有以下绑定。

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

这是“人”类:

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

BirthDate的初始值为null。 我想修复的问题可以通过这种方式重现:

  1. 用户输入“cvgdfgfg”到datePicker
  2. 点击“清除”按钮。
  3. 此后不会清除datePicker。
  4. 这是ClearDateOperation的实现

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

    有什么想法吗?提前谢谢。

    PS。我使用silverlight 4,.NET 4,VS 2010 PS。您可以使用此链接下载一个包含该问题的简单示例。 Silverlight app

2 个答案:

答案 0 :(得分:0)

看起来你需要实现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));
    }
}

答案 1 :(得分:0)

Person.BirthDate = DateTime.MinDate

或类似的东西