0

一時データのビジュアルコレクションがあります。このビジュアル コレクションからすべてのレコードを消去する正しい方法は何ですか?

編集(私がやろうとしていることのより良い写真を求めるYannの要求の後)

ボタンをクリックするだけで、ユーザー定義のパラメーターに基づいてビジュアル コレクションにデータを入力します。ユーザーは必要に応じてこのデータを編集できます。次に、[保存] をクリックすると、このデータが別のデータベース テーブルに書き込まれます。(これをコードで行っている理由は、visualcollection の形状が SQL データベース内の単一のテーブルに直接マップされないためです。Lightswitch ではシナリオを簡単に達成できないことに気付きました。)コレクションにデータが入力された後で、ユーザーがコレクションにデータを入力するためのパラメータを変更した場合、そのコレクションをクリアして、新しいパラメータに基づいて再入力する必要があります。[visualcollection].clear メソッドを呼び出したいと思っていたのはここです。しかし、そのような運はありません。次の各アプローチを試しましたが、成功しませんでした。

1) visualcollection の各アイテムに対して、item.details.delete を呼び出します (これは、アイテムが現在のコンテキストによって追跡されていないというエラーを返します)

2) 最初のアイテムを selecteditem に設定してから、visualcollection.removeselected を呼び出します。最初の項目が != null である間反復します。(これは、コレクションからすべてのアイテムを削除することに明らかに失敗しています-すべてではなく一部を削除します-理由はわかりません)。

これで、画面上で this.Refresh を呼び出すルートに進みました (ユーザーのパラメーターを静的変数に格納した後、画面の dataworkspaceinitialized イベントでそれらを再設定できます)。この手順はあまりにも大胆すぎるように思えます...ビジュアルコレクションをクリアするために、画面でリフレッシュを呼び出すまで本当に行かなければなりませんか?

4

1 に答える 1

0

「最良の」方法は、いくつかの異なるものに依存する可能性があります。接続されたデータベースですか、それとも組み込みデータベースですか? クライアントからサーバー上のコードをトリガーすることに慣れていますか? 関与するレコードの数などは? これがごく自然な部分である既存のプロセスはありますか? それとも、画面上のボタンをクリックするだけで操作を実行するつもりですか?

ご覧のとおり、何をしたいのかをもっと知らなければ、それは単純な答えではありません。

于 2012-09-11T00:28:03.300 に答える