2010-11-18 4 views
1

현재 XAML에서 완전히 구동되는 WPF 앱이 있습니다. 모든 필드, 데이터 격자는 모두 ObjectDataProviders 객체를 사용하여 XAML에서 바인딩됩니다. DataAccessLayer (DAL) 프로젝트로 가져 왔습니다. ODP를 사용하여 데이터를 검색하는 호출은 데이터가 모두 작동하는지 표시하는 데 사용됩니다.XAML에서 데이터베이스 직접 업데이트

XAML에서 직접 내 DAL에있는 메서드를 사용하여 삽입, 업데이트, 삭제를 수행 할 수 있습니까? 나는 UI를 별도의 엔티티로 유지하기 위해 모든 코드 숨김을 피하려고 노력하고있다. 삽입, 업데이트, 삭제에 대한 명확한 예를 찾을 수 없습니다. 이견있는 사람?

답변

2

WPF와 Xaml에는 실제로 삽입, 업데이트 및 삭제에 대한 개념이 없습니다. 데이터 바인딩은 모두 객체 (또는 비정기적인 XML)와 관련이 있습니다. UI에서 변경된 사항 (예 : TextBox에 값을 입력하는 사용자)이 바인딩 된 객체에 푸시되고 나면 데이터 바인딩 작업이 완료됩니다. 데이터로 수행 할 작업은 사용자가 결정합니다.

"코드 비하인드"목표에 대한 걸림돌은 아닙니다. 일반적인 접근 방식은보기 (Xaml)와 데이터 개체 사이에 레이어를 추가하고 UI를 기본 도메인 모델이 아닌 해당 레이어에 바인딩하는 것입니다. (이 레이어는 종종 ViewModel이라고도하지만 프레젠터와 같은 다른 이름으로 표시됩니다.이 전체 패턴을 '분리 된 프리젠 테이션'이라고합니다.)

코드 숨김없이 작업을 활성화하는 방법 명령을 사용하는 것입니다. 중간 계층은 데이터 지향 속성을 노출하는 것이 아닙니다. 명령을 보유하는 속성을 노출 할 수 있으며 이러한 명령을 단추, 하이퍼 링크 또는 메뉴 항목에 바인딩 할 수 있습니다. 코드 비하인드가 필요하지 않습니다. Xaml에서 모두 바인딩 식입니다. 그러나 버튼을 클릭하면 뷰 모델의 관련 처리기 코드가 실행됩니다. (ICommand 구현하는 매우 간단한 인터페이스입니다 -. 클릭하면 버튼이 바로 실행 메서드를 호출합니다 그리고 당신은 일반적으로 자신의 구현을 제공 할 - 내장 RoutedCommandRoutedUICommand이 시나리오에 부적절한.) 다음

그리고 당신은 삽입/업데이트/삭제/뭐든간에 적합하다고 생각합니다.