我有一个父UControl,上面有一个复选框。检查后,它会将另一个UControl加载到tabitem中。我对父母和孩子的UC都进行了验证。验证在创建新记录时非常有效,但是一旦取消选中复选框然后重新检查,我的验证边框就会消失在子UC上。我在父UC上有一个“保存”按钮。我注意到这个按钮确实响应了子验证,因为它禁用了按钮,直到所有父字段和子字段都被填满。当重新检查框时,我似乎无法显示红色验证边框。任何人都可以告诉我如何重新验证我的孩子UC领域?
来自父母UC
private bool IsValid(DependencyObject obj)
{
// The dependency object is valid if it has no errors,
//and all of its children (that are dependency objects) are error-free.
return !Validation.GetHasError(obj) &&
LogicalTreeHelper.GetChildren(obj)
.OfType<DependencyObject>()
.All(child => IsValid(child));
}
从父mycheckbox_checked事件添加子UC
tabSafetyCageRequired.Visibility = Visibility.Visible;
stackPanelSafetyCageDetail.Children.Clear();
_currentSafetyCageDetail = childSafetyCageDetailUControl;
stackPanelSafetyCageDetail.Children.Add(_currentSafetyCageDetail);
从父mycheckbox_Unchecked事件中删除子UC
_currentSafetyCageDetail = childSafetyCageDetailUControl;
stackPanelSafetyCageDetail.Children.Remove(_currentSafetyCageDetail);
tabSafetyCageRequired.Visibility = Visibility.Collapsed;
根据要求提供更多代码......
PS。我发现一些文章表明它是“AdornerDecorator”,但正如我上面说的那样,验证确实适用于第一遍(新记录),但在检查/取消选中复选框时会丢失它的红色边框。
提前致谢