如何禁用 Silverlight DataGrid 验证页脚?
我面临以下问题:我正在使用验证摘要弹出窗口来在页面上显示错误,并且我有一个可编辑的 DataGrid。因此存在 2 个问题:
1) DataGrid 验证会重复验证错误(如果发生在 DataGrid 单元格中)。例如。 DataGrid 包含 IEnumerable 对象的集合。当我对集合中的每个对象执行 ComplexObject.Validate() 时,对于 DataGrid 页脚中的每个不正确的对象,我都会收到 1 个验证错误,而在“验证摘要”弹出窗口中则会收到 2 个相同的错误。我尝试使用另一个 Datagrid (Telerik),它工作得很好,所以我认为这是 DataGrid 的问题,尽管 Telerik 控件不适合我。
2)DataGrid验证脚是多余的,我想删除/隐藏它。
有什么办法可以同时实现这两种选择吗?提前致谢。
I'm facing the following problem: I'm using validation summary popup for displaying errors on the page, and i have an editable DataGrid. So there are 2 problems:
1) DataGrid validation duplicates validation error, if it occurs in the DataGrid cell. For example. DataGrid contains a collection of objects IEnumerable. When I'm doing ComplexObject.Validate() for each object in collection, i get 1 validation error for each incorrect object in the DataGrid footer and 2 same errors in my Validation Summary popup. I tried with another Datagrid (Telerik) and it worked just fine, so i assume it's DataGrid's problem, though Telerik control doesn't suit me.
2) DataGrid validation foot is redundant, and i want to remove/hide it.
Is there any way to achieve both options at the same time? Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
要删除数据网格验证摘要(问题#2),请使用混合或反射器提取样式,将其粘贴到样式资源字典中,然后删除验证摘要控件。
然后引用数据网格声明中的样式 (Style={StaticResource DataGridOverrideStyle})。如果您没有反射器或混合,这是 silverlight 4 的 xaml:
To remove the datagrid validation summary (question #2), extract the style using blend or reflector, stick it in a Style resource dict, and remove the validation summary control.
Then reference the style in the datagrid declaration (Style={StaticResource DataGridOverrideStyle}). Here's the xaml for silverlight 4 if you don't have reflector or blend:
另一个解决方案是子类化 DataGrid 并在 OnApplyTemplate 替代中将 ValidationSummary 控件的 MaxHeight 设置为零。像这样的事情:
Another solution is to subclass the DataGrid and set the MaxHeight of the ValidationSummary control to zero in the OnApplyTemplate override. Something like this: