嗨我有两个控件存在。第一个是名为Disbursal
的Datepicker。第二个是具有多列的网格,但唯一重要的列是日期列。
此时验证的工作原理是,如果我在网格中移动日期,如果在发布日期之前,则会在RowEditEnded上进行验证检查。
我现在也想反过来。如果更改了发布日期,我希望触发网格中存在的每一行的验证。
所以我的问题是,在Disbursal Datepicker选择更改后,如何遍历行并让每行进入编辑和结束编辑,以便触发验证。
this.RadGridView1.RowEditEnded += this.radGridView_RowEditEnded;
this.RadGridView1.BeginningEdit += this.radGridView_BeginningEdit;
private void radGridView_BeginningEdit(object sender, GridViewBeginningEditRoutedEventArgs e)
{
((ScriptDTO)e.Cell.DataContext).ClearErrors();
}
private void radGridView_RowEditEnded(object sender, GridViewRowEditEndedEventArgs e)
{
if (e.EditAction == GridViewEditAction.Commit)
{
ScriptDTO editedPerson = e.Row.DataContext as ScriptDTO;
if (editedPerson.Date <= DisbursalDatePicker.SelectedDate)
{
editedPerson.SetError("Date", "Must be after disbursal");
}
else
{
editedPerson.ClearErrors();
}
}
}
答案 0 :(得分:1)
您可以遍历Items
的{{1}}集合中的项目:
RadGridView
不要费心尝试以编程方式提升实际的private void DisbursalDatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
{
foreach (ScriptDTO person in RadGridView1.Items.OfType<ScriptDTO>())
{
if (person.Date <= DisbursalDatePicker.SelectedDate)
{
person.SetError("Date", "Must be after disbursal");
}
else
{
person.ClearErrors();
}
}
}
事件。