データグリッドとデータフォームの 2 つのコントロールを含むページがあります。
データグリッドには、特定のクラスのすべてのオブジェクトのリストがあります。ユーザーがデータグリッド内の項目を選択すると、選択したオブジェクトがデータフォームに読み込まれます。
dataForm.CurrentItem = view.CurrentItem; ビューは、選択された項目のみを含む PagedCollectionView です。
私の問題は、データフォームの currenitem プロパティを設定するときに、.CurrentItem なしで PagedCollectionView (ビュー) だけを使用すると、データフォームの検証が失われることです。すべての必須フィールドが必須として表示されていません。データフォームの CurrentItem 検証として pcv.CurrentItem を使用すると、正常に動作しますが、別の問題が発生します。
PagedCollectionView の現在のアイテムをデータフォームの現在のアイテムとして使用すると、次のようになります。
ユーザーがデータグリッドでアイテムを選択すると、オブジェクトがデータフォームに正常にロードされます。ユーザーがデータフォームのいずれかのテキストフィールドで特定の値を変更してから、別の項目を選択してデータフォームをロードすると、次のエラーがスローされます。
「アイテムに検証エラーがある場合、またはアイテムが編集中で、AutoCommit が false の場合、通貨を変更できません。代わりに通貨を管理するには、ItemsSource を ICollectionView に設定してください。」データフォームのページング プロパティを使用しておらず、フォームに独自の保存ボタンがあります。
これは私が取り組んでいる最初の Silverlight プロジェクトです。
編集 - データフォームの現在の項目を変更するときに dataform.CommitEdit を使用しました。これが解決しなかったことの 1 つは、フォームに検証エラーがある場合、通貨エラーがスローされることです。とにかくこれをバイパスする方法はありますか。データフォームの AutoEdit が true で AutoCommit が false