防止 BindingSource 添加两个空白行到 gridview
我有像这样连接到网格控件的bindingsource
private BindingSource listDepartmentDto = new();
private async Task LoadDataAsync()
{
listDepartmentDto.DataSource = await departmentService.GetAllDepartmentsAsync();
gridControl1.DataSource = listDepartmentDto;
}
,并且我像这样绑定了控件
private void BindingControls()
{
var departmentDto = listDepartmentDto.Current as DepartmentDto;
txtID.DataBindings.Add(new Binding("EditValue", listDepartmentDto, nameof(departmentDto.IdDepartment)));
txtTitle.DataBindings.Add(new Binding("EditValue", listDepartmentDto, nameof(departmentDto.NameDepartment)));
txtDescription.DataBindings.Add(new Binding("EditValue", listDepartmentDto, nameof(departmentDto.DescriptionDepartment)));
}
,并且我使用像这样的当前事件
listDepartmentDto.CurrentChanged += new EventHandler(listDepartmentDtoChanged);
private void listDepartmentDtoChanged(object sender,EventArgs e)
{
var departmentDto = listDepartmentDto.Current as DepartmentDto;
if (departmentDto.IdDepartment == 0)
{
btnSave.Text = Resources.Save;
btnNew.Enabled = false;
btnDelete.Enabled = false;
txtTitle.Focus();
return;
}
btnSave.Text = Resources.Edit;
btnNew.Enabled = true;
btnDelete.Enabled = true;
}
,在btnnew click click evert ymis中,
private async void btnNew_Click(object sender, EventArgs e)
{
listDepartmentDto.AddNew();
await Permission();
}
问题是当我单击btnnew时,它会创建空白行,并且当我选择另一个行且再次单击btnnew,它创建了新的空白行等。
如何防止这种行为?如果用户移动到另一个行而没有输入任何数据,则该行自动删除了
网格视图可食用已设置为false。
网格视图(添加,删除)行设置为false。
I have BindingSource that attached to grid control like this
private BindingSource listDepartmentDto = new();
private async Task LoadDataAsync()
{
listDepartmentDto.DataSource = await departmentService.GetAllDepartmentsAsync();
gridControl1.DataSource = listDepartmentDto;
}
And I binding Controls like this
private void BindingControls()
{
var departmentDto = listDepartmentDto.Current as DepartmentDto;
txtID.DataBindings.Add(new Binding("EditValue", listDepartmentDto, nameof(departmentDto.IdDepartment)));
txtTitle.DataBindings.Add(new Binding("EditValue", listDepartmentDto, nameof(departmentDto.NameDepartment)));
txtDescription.DataBindings.Add(new Binding("EditValue", listDepartmentDto, nameof(departmentDto.DescriptionDepartment)));
}
And I use CurrentChanged event like this
listDepartmentDto.CurrentChanged += new EventHandler(listDepartmentDtoChanged);
private void listDepartmentDtoChanged(object sender,EventArgs e)
{
var departmentDto = listDepartmentDto.Current as DepartmentDto;
if (departmentDto.IdDepartment == 0)
{
btnSave.Text = Resources.Save;
btnNew.Enabled = false;
btnDelete.Enabled = false;
txtTitle.Focus();
return;
}
btnSave.Text = Resources.Edit;
btnNew.Enabled = true;
btnDelete.Enabled = true;
}
And in btnNew click event like this
private async void btnNew_Click(object sender, EventArgs e)
{
listDepartmentDto.AddNew();
await Permission();
}
The problem is when I click on btnNew it create blank row and when I select an other row and click again on btnNew it create new blank row and so on.
How can I prevent this behavior? and if the user move to an other row without entry any data the row removed automatically
The grid view edtiable has set to false.
the grid view (add,remove) row has set to false.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论