0

私はMicrosoftによるこのチュートリアルに従い、Beta 2にアップグレードするまで、それは素晴らしく機能しました。

http://msdn.microsoft.com/en-us/lightswitch/Video/ff945359

これは、データが入力されていない、いわゆる「データアイテム」を使用する場合に、例外が発生することです。

したがって、問題は、新しい画面を使用する人が編集にも使用していて、この問題が発生したことはありますか。また、これをどのように修正しましたか。

考えられるシナリオ:

  • 新しいBeta2プロジェクトを開始し、個別の新しい画面と編集画面を作成します(二重作業を意味します)
  • (新しいモードでは使用されない)データ項目を既存のレコードにバインドして、何らかの方法で修正を見つけます(醜い修正になります)
  • 新しい/編集画面を作成する別の方法を見つけてください。
  • オプション4?
4

2 に答える 2

1

Beth の元のコードの修正バージョンを使用します (最初は B2、次に RTM、そして V2 ベータで動作することはかなり確信しています)。もっと、私は自分のコードをかなり長い間使用しているので)。

ベスが公開した最初のコードは、「データの編集」画面を使用していましたが (おそらくそれは B1 でしたか?)、その後、「新しいデータの追加」画面を使用する更新バージョンをリリースしました (あなたが指摘したビデオは B2 用でした)。 .

それでもうまくいかない場合は、私が使用しているコードを紹介します。

于 2012-05-04T12:46:12.620 に答える
0

次のロジックを使用して、レコードの編集と追加の両方で同じ画面を開きます。

partial void CreateNewOrEditJob_InitializeDataWorkspace(List<IDataService> saveChangesTo)
        {
            Job selectedJob;

            if (SelectedJobId.HasValue)
            {
                int selectedId = (int)SelectedJobId;
                selectedJob = DataWorkspace.ApplicationData.Jobs.Where(j => j.Id.Equals(selectedId)).FirstOrDefault();
            }
            else
            {
                selectedJob = new Job();
            }
            this.JobProperty = selectedJob;
    }

上記の例は、既存の「ジョブ」エンティティを編集するか、新しいエンティティを作成するために使用される画面に使用されます。「SelectedJobId」は画面のローカル プロパティであり、Is パラメータが true に設定され、Is Required が false に設定されています。


クレジットは Paul Patterson Quercus Solutions Inc (MVP) に贈られます

于 2012-05-03T10:12:19.823 に答える