在DataGrid列中设置DatePicker的默认值

时间:2013-07-09 10:44:33

标签: wpf xaml binding

我有一个绑定到Collection的DataGrid,其中一个列类型是DateTime。

我的xaml代码是:

<DataGridTemplateColumn Width="260" Header="OrderDate">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <DatePicker SelectedDate="{Binding OrderDate,
                                       Mode=TwoWay,
                                       UpdateSourceTrigger=PropertyChanged}" />
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

问题是DatePicker的默认值是1/1/0001。

如何设置默认值?

2 个答案:

答案 0 :(得分:2)

问题是这样修复的(对不起,如果问题不明确):

在类声明中:

public DateTime OrderDate { get; set; }

将其更改为:

public DateTime? OrderDate { get; set; }

它看起来像是采用DateTime dfault值而解决方案是添加空值。

答案 1 :(得分:0)

您可以添加如下属性:

public class SomeClass
{
    // Default value
    private DateTime myDateTime = new DateTime(2010, 1, 18);

    public string Sample
    {
        get;
        set;
    }

    public DateTime OrderDate
    {
        get
        {
            return myDateTime;
        }

        set
        {
            myDateTime = value;
        }
    }
}

在添加数据后,例如 - ObservableCollection

SomeCollection.Add(new SomeClass()
{            
    Sample = "Sample1",
    OrderDate = DateTime.Now, // Forcibly set date
});     

当跳过此参数时,会添加到默认值:

SomeCollection.Add(new Person()
{            
    Sample = "Sample1",
    // Skipping date, set the default value "2010, 1, 18"
});