我是WPF和XAML的新手,所以我可能会以错误的方式解决这个问题。
我有一个使用Entity Framework绑定到数据源的DataGrid。
当我向DataGrid添加一个新行时,我希望其中一个列名为" Created"自动填充当前日期和时间。
数据最终会在SQL Server上结束。
"创建" SQL服务器上的列不可为空,但默认值为" getdate()。"它与我们当前的MS Access应用程序一起工作正常。在运行手动插入查询时,只需省略"创建"的值。列触发默认值。
新行使用默认值" 1/1/0001 12:00:00 AM"尽管SQL服务器的默认值是" getdate(),而不是当前的日期和时间。"
我试过了:
我不知道该怎么做。我知道"查看"只应该负责显示数据,但我不确定如何更改模型,以便此特定表的新行不会为"创建&#34发送值;列或总是在添加新行时传递当前日期和时间。
我花了好几个小时看WPF文档,实体框架文档,Stack Overflow,MSDN文档......我即将脱掉头发!任何帮助都会非常,非常感谢!
答案 0 :(得分:3)
我非常确定DataGrid.AddingNewItem事件是您想要的事件。尝试这样的事情:
<DataGrid ItemsSource="{Binding Collection}"
CanUserAddRows="True"
AddingNewItem="DataGrid_AddingNewItem">
然后在您的代码隐藏中:
private void DataGrid_AddingNewItem(object sender, AddingNewItemEventArgs e)
{
e.NewItem = new Model
{
Created = DateTime.Now //whatever you put here will be the default value
};
}