Validation 结束编辑时Silverlight Datagrid验证
我需要对网格列进行验证。该列中的所有单元格均为空。用户需要输入数据,然后我需要验证它 目前,我已经对单元格进行了验证,但它对开始编辑事件有效,而不是结束编辑事件有效。这是毫无意义的,因为验证需要检查他们是否输入了信息 如何在结束编辑事件时获得要验证的验证 提前感谢你的帮助 尼文 代码:Validation 结束编辑时Silverlight Datagrid验证,validation,silverlight-4.0,datagrid,Validation,Silverlight 4.0,Datagrid,我需要对网格列进行验证。该列中的所有单元格均为空。用户需要输入数据,然后我需要验证它 目前,我已经对单元格进行了验证,但它对开始编辑事件有效,而不是结束编辑事件有效。这是毫无意义的,因为验证需要检查他们是否输入了信息 如何在结束编辑事件时获得要验证的验证 提前感谢你的帮助 尼文 代码: 我刚刚用下面的自定义代码解决了这个问题。我还没有时间测试所有的场景,但是我对结果很有信心 public class ExtendedDataGrid : DataGrid { private Valida
我刚刚用下面的自定义代码解决了这个问题。我还没有时间测试所有的场景,但是我对结果很有信心
public class ExtendedDataGrid : DataGrid {
private ValidationSummary _validationSummary = null;
private bool _validationFilterBehaviorApplied = false;
private bool _validationFilterBehaviorRestored = false;
public ExtendedDataGrid() { }
public override void OnApplyTemplate() {
base.OnApplyTemplate();
this._validationSummary = (ValidationSummary)this.GetTemplateChild("ValidationSummary");
}
protected override void OnBeginningEdit(DataGridBeginningEditEventArgs e) {
if (!_validationFilterBehaviorApplied) {
_validationSummary.Filter = ValidationSummaryFilters.None;
_validationFilterBehaviorApplied = true;
}
base.OnBeginningEdit(e);
}
protected override void OnRowEditEnding(DataGridRowEditEndingEventArgs e) {
if (_validationFilterBehaviorApplied && !_validationFilterBehaviorRestored) {
_validationSummary.Filter = ValidationSummaryFilters.All;
_validationFilterBehaviorRestored = true;
}
base.OnRowEditEnding(e);
}
protected override void OnRowEditEnded(DataGridRowEditEndedEventArgs e) {
_validationFilterBehaviorApplied = false;
_validationFilterBehaviorRestored = false;
base.OnRowEditEnded(e);
}
}
我刚刚用下面的自定义代码解决了这个问题。我还没有时间测试所有的场景,但是我对结果很有信心
public class ExtendedDataGrid : DataGrid {
private ValidationSummary _validationSummary = null;
private bool _validationFilterBehaviorApplied = false;
private bool _validationFilterBehaviorRestored = false;
public ExtendedDataGrid() { }
public override void OnApplyTemplate() {
base.OnApplyTemplate();
this._validationSummary = (ValidationSummary)this.GetTemplateChild("ValidationSummary");
}
protected override void OnBeginningEdit(DataGridBeginningEditEventArgs e) {
if (!_validationFilterBehaviorApplied) {
_validationSummary.Filter = ValidationSummaryFilters.None;
_validationFilterBehaviorApplied = true;
}
base.OnBeginningEdit(e);
}
protected override void OnRowEditEnding(DataGridRowEditEndingEventArgs e) {
if (_validationFilterBehaviorApplied && !_validationFilterBehaviorRestored) {
_validationSummary.Filter = ValidationSummaryFilters.All;
_validationFilterBehaviorRestored = true;
}
base.OnRowEditEnding(e);
}
protected override void OnRowEditEnded(DataGridRowEditEndedEventArgs e) {
_validationFilterBehaviorApplied = false;
_validationFilterBehaviorRestored = false;
base.OnRowEditEnded(e);
}
}
您可以向我们展示您已经进行的BeginEdit验证吗?已更新。这有帮助吗?你能告诉我们你已经进行的BeginEdit验证吗?已更新。这有用吗?