比如 我点击添加按钮,那么DataGrid下面就添加一行,然后里面可以输入值,在点击保存就保存到数据库,这个怎么做?
datagrid 数据库
------解决方案--------------------------------------------------------
貌似这个问题,我前些日子在论坛里给别人回答过...
那就用ObservableCollection 就可以了
using System.Collections.ObjectModel;
public partial class SilverlightControl1 : UserControl
{
ObservableCollection<User> collect = new ObservableCollection<User>();
public SilverlightControl1()
{
InitializeComponent();
User user1 = new User() { UserName = "张三", Hobby = "玩Dota" };
User user2 = new User() { UserName = "李四", Hobby = "看人玩Dota" };
collect.Add(user1);
collect.Add(user2);
mydg.ItemsSource = collect;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
collect.Add(new User() { UserName = "", Hobby = "" });
}
}
public class User
{
public string UserName { get; set; }
public string Hobby { get; set; }
}
原理如上所示,ObservableCollection 绑定可以实现 ,操作完毕利用集合中的数据写入数据库
------解决方案--------------------------------------------------------
1: DataGrid绑定的数据集合必须是实现了INotifyCollectionChanged的。
2: 添加按钮直接往被绑定的数据集合中add一条。
3:ScrollIntoView方法滚动到新添加的那条数据上的第一个单元格上
4:用BeginEdit来启用编辑。
前提,你的实体类最好实现IPropertyNotify接口,并为各个属性添加了验证数据合法性的约束(如[Require],[StringLength]等)