2

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

我的xml代码是:

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

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

如何设置默认值?

4

2 回答 2

2

通过这种方式解决了问题(如果问题不清楚,请见谅):

在类声明中:

public DateTime OrderDate { get; set; }

将其更改为:

public DateTime? OrderDate { get; set; }

看起来它正在使用 DateTime dfault 值,解决方案是添加空值。

于 2013-07-09T11:41:31.777 回答
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;
        }
    }
}

添加数据后,例如 - in 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"
});     
于 2013-07-09T11:24:31.387 回答