데이터베이스에서 모든 활성 레코드를 가져 와서 observablecollection을 유지해야하는 프로젝트에서 시나리오가 있습니다. 이 관찰 컬렉션은 사용자가 제거 도서를 추가 할 수있는 WPF 응용 프로그램의 그리드 컨트롤에 바인딩됩니다. 사용자가 데이터베이스에 저장을 누를 때까지 컬렉션에 추가, 제거 및 수정 된 모든 레코드를 유지해야합니다. 우리의 제약은 책 이름이며 책의 IBN 번호는 고유해야합니다. 사용자가 컬렉션에 이미있는 도서 이름이 중복 된 새 책을 추가하는 경우 해당 개체를 무효화해야하므로 모든 컬렉션 개체가 유효하지 않을 때까지 데이터베이스에 저장할 수 없습니다. 다른 방법으로 달성 할 수 있음을 알고 있습니다.이를 수행하는 모범 사례에 대해 알고 싶습니다. IDataErrorInfo 또는 Enterprise Validation Library가 포함 된 솔루션에 만족합니다.컬렉션에서 유니크를 강제하는 방법 아이템
0
A
답변
0
당신은 아주 잘 나는이 책 오브젝트가 존재입니다 같은 컬렉션의 다른 책 항목 this.BookName을 비교하는 IsDuplicate (bookname과)의 구현을 찾고이
public class Book : IDataErrorInfo
{
public string BookName { get; set; }
public string IBN { get; set; }
public string Error
{
get { throw new NotImplementedException(); }
}
public string this[string columnName]
{
get
{
string result = null;
switch(columnName)
{
case "BookName":
result = IsDuplicate(BookName) ? "Already Present" : null;
break;
case "IBN":
result = IsDuplicate(IBN) ? "Already Present" : null;
break;
default:
break;
}
return result;
}
}
}
관련 문제
- 1. 반응 확장 - 하나의 컬렉션에서 다른 컬렉션으로 아이템 펌핑
- 2. 힌트로 해석을 강제하는 방법
- 3. 커스텀 아이템 렌더러에서 TileList 아이템 인덱스에 액세스하는 방법
- 4. TableViewer : 선택 변경을 강제하는 방법
- 5. 컨트롤이 자신을 확인하도록 강제하는 방법?
- 6. Opera의 호버 트리거링을 강제하는 방법
- 7. 안전하게 맥의 종료를 강제하는 방법
- 8. 갤러리의 사진 순서를 강제하는 방법
- 9. 캔버스에서 디스플레이 업데이트를 강제하는 방법
- 10. 서비스의 onDestroy 메소드를 강제하는 방법
- 11. 아이템 - 아이템 관계에 대한 레일스 모델 연관성?
- 12. 컬렉션에서 항목을 선택적으로 필터링하는 방법
- 13. 아이템 렌더러에 'if 문'이로드되는 것을 피하는 방법
- 14. Paypal IPN - 맞춤 아이템 설명을 설정하는 방법?
- 15. MX : Tree의 모든 아이템 렌더러에 액세스하는 방법?
- 16. 웹 브라우저에서 캐시하도록 강제하는 방법 이미지
- 17. LINQ : 값 기반 참조를 강제하는 방법?
- 18. boost :: bind에 템플릿 함수 오버로드를 강제하는 방법?
- 19. 디렉토리에 HTTPS를 강제하고 HTTPS 인증을 강제하는 방법
- 20. MIME 형식의 파일 다운로드를 강제하는 방법
- 21. has_many가 특정 : foreign_key를 사용하도록 강제하는 방법?
- 22. Magento가 APC 캐시를 사용하도록 강제하는 방법
- 23. Qt : 숨겨진 위젯이 레이아웃을 계산하도록 강제하는 방법?
- 24. in gcc 런타임에서 심볼 해석을 강제하는 방법
- 25. WPF RichTextBox에서 삽입 모드를 강제하는 방법
- 26. 안드로이드에서 영어 키보드를 강제하는 방법 EditText
- 27. Joomla 아티클이 주어진 템플릿을 사용하도록 강제하는 방법
- 28. Drupal 폼이 이전 결과를 지우도록 강제하는 방법
- 29. 라텍스의 아이템 아이템 사이의 간격을 변경하는 방법은 무엇입니까?
- 30. 스파크 목록 아이템 렌더러
같은 IDataErrorInfo를 사용할 수 있습니까? – sharnol