我有一个绑定到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。
如何设置默认值?
答案 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"
});