2011-09-11 13 views
0

フィールドを最後に入力した値に事前設定する必要があります。 Save()の値を静的に保存しています。次に、新しいエントリフォームが次に作成されたときにその値にフィールドを設定したいと思います。LightSwitchのデフォルト値を設定する

私は最後のステップを得ることができません...エンティティがすでに接続されているというエンティティエラーが発生します。

フィールドの値を設定するにはどうすればよいですか?

答えて

1

データテーブルのCreatedイベントでデフォルト値を設定する必要があります。 Changedイベントの最後の値を取得します。これは、現在のユーザーがフィールドに行ったすべての変更を取得します。ここでは、ユーザが入力した最後の価格にデフォルトの価格を設定し、「ウィジェット」と呼ばれるエンティティを使用した例です。これらのイベントので、あなたは、挿入または更新イベントで値をキャプチャすることはできません

public partial class Widget 
{ 
    private static decimal LastWidgetPrice; 

    partial void Widget_Created() 
    { 
     Price = LastWidgetPrice; 
    } 

    partial void Price_Changed() 
    { 
     LastWidgetPrice = Price; 
    } 
} 

注意サーバー上で発生し、Createdイベントはクライアント上で発生します。 Changedイベントはクライアントコード内で発生するので、最後に入力した値をキャプチャするためにこのイベントを使用できます。

エンティティデザイナ(テーブルデザイナ)のWriteCodeドロップダウンを使用して、作成イベントと変更イベントを作成できます。

+0

はい、どうですか?私はthis.DataWorkspace.Application.XYZ = LastValueを使って試しました。私は例外があります。 – ILovePaperTowels

+0

申し訳ありません!私は昨晩急いでいて、私の答えを見直さなかった。解決策を修正し、サンプルコードをいくつか含めました。これがまだあなたのために機能しない場合は、私にお知らせください。 –

+0

Paulに感謝します。でも、私はウィジェットではなく、画面上でこれをしたいと思います。私はウィジェットでそれを試してみましたが、画面はすべてがグレー表示(無効)で表示されます。 – ILovePaperTowels

関連する問題