1

Silverlight 4 ページに DataForm があります。以下のクラスのビューにバインドします。DataForm に組み込まれたコントロールを使用して、レコードを追加、削除、編集、前後に移動できます。しかし、Filter または SortDescription のコメントを削除するとすぐに、追加 + ボタンを押すたびに、恐ろしい「項目に検証エラーがあるか、編集されていて AutoCommit が false の場合、通貨を変更できません」というエラーが表示されます。私はこれに何時間も立ち往生しており、手がかりがありません。

public class TestData {
    OperationsDataContext context;
    ICollectionView view;

    public ICollectionView View { get { return view; } }
    public IEditableCollectionView EditableView { get { return ((IEditableCollectionView)view); } }

    public TestData() {
        context = new OperationsDataContext();
        context.Locations.Add(new Location { LocationId = 1, LocationName = "Home", CreatorUserId = 1 });
        context.Locations.Add(new Location { LocationId = 2, LocationName = "Work", CreatorUserId = 1 });
        context.Locations.Add(new Location { LocationId = 3, LocationName = "Office", CreatorUserId = 1 });
        view = ((ICollectionViewFactory)context.Locations).CreateView();
        // View.Filter = (o) => true;
        // View.SortDescriptions.Add(new SortDescription("LocationName", ListSortDirection.Ascending));
    }
}

DataForm ではなく、コードを使用して手動でデータを追加しようとしましたが、フィルターと並べ替えの両方が指定されている場合でも問題なく動作します。

        TestData testData = new TestData();
        Location item = testData.EditableView.AddNew() as Location;
        testData.EditableView.CommitNew();

コードからは機能するのに、DataForm 経由では機能しないのはなぜですか? また、フィルターが指定されていない場合は DataForm が機能するのに、常に true を返す no-op フィルターが指定されている場合は失敗するのはなぜですか?

4

2 に答える 2

0

http://forums.silverlight.net/p/111217/250982.aspx投稿と同様の問題がある可能性があります

于 2011-10-27T08:02:22.353 に答える