2011-09-11 6 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

예,하지만 어떻게 되나요? 나는 이것을 사용하려고 시도했다. DataWorkspace.Application.XYZ = LastValue; 예외가 생깁니다. – ILovePaperTowels

+0

죄송합니다! 나는 지난밤에 서둘러서 내 대답을 검토하지 않았다. 솔루션을 수정하고 일부 샘플 코드를 포함 시켰습니다. 이 방법이 여전히 효과가 없다면 알려주세요. –

+0

Paul에게 감사 드려요.하지만 위젯이 아닌 화면에서이 작업을하고 싶습니다. 위젯에서 시도했지만 화면이 회색으로 희미 해졌다 (사용 불가). – ILovePaperTowels