我有一个页面,上面有两个控件,一个数据网格和一个数据表单。
在数据网格中,我有一个特定类的所有对象的列表。当用户在数据网格中选择一个项目时,数据表单将与所选对象一起加载。
dataForm.CurrentItem = view.CurrentItem; view 是一个 PagedCollectionView ,它只包含选定的项目。
我的问题是,在设置数据表单的 currenitem 属性时,如果我只使用没有 .CurrentItem 的 PagedCollectionView(视图),我会丢失对数据表单的验证。并非所有必填字段都被视为必填。如果我使用 pcv.CurrentItem 作为我的数据表单的 CurrentItem 验证工作正常,但是会出现另一个问题。
当我使用 PagedCollectionView 的当前项作为数据表单的当前项时:
用户在数据网格中选择一个项目,并且该对象在数据表单中加载良好。如果用户更改数据表单上任何文本字段中的某个值,然后选择不同的项目来加载数据表单,则会引发以下错误:
“当项目存在验证错误或正在编辑且 AutoCommit 为假时,无法更改货币。将 ItemsSource 设置为 ICollectionView 以改为管理货币。” 我没有使用数据表单的分页属性,并且我在表单上有自己的保存按钮。
我将不胜感激,这是我正在从事的第一个 Silverlight 项目。
编辑 - 我在更改数据表单的当前项时使用了 dataform.CommitEdit。这没有解决的一件事是,如果表单上存在验证错误,则会引发货币错误。反正有没有绕过这个。数据表单的 AutoEdit 为 true,AutoCommit 为 false