2009-08-26 2 views
3

WPF 또는 Silverlight 응용 프로그램의 디자인에 대해 생각하고 있습니다. MVC (또는 다른 그런 디자인 패턴)을 사용할 계획입니다Databinding은 뷰를 모델에 연결하는 좋은 방법입니다.

마녀가 선택한 디자인 패턴 중에서 모델 (또는 발표자)을 볼 수 있도록 연결해야합니다.이 작업을 수행하는 좋은 방법입니까?

은 (윈폼 응용 프로그램과 과거에 나는 데이터 바인딩이 장기적으로 문제를 많이주고 약속을 이행하지 않는 것으로 나타났습니다. 그것은 WPF와 Siverlight와 동일?)

답변

1

당신은을 추천합니다 Model-View ViewModel (MVVM) 패턴을 살펴보십시오. 다음은 매우 유용한 비디오입니다. Jason Dolinger on Model-View-ViewModel. WPF에서 양방향 데이터 바인딩은 매우 강력합니다.

+0

감사합니다. 지금이 비디오를보고 있습니다. 굉장한 비디오! 그러나 데이터 바인딩에 대한 컴파일 시간 검사가 없으므로 속성 중 하나의 이름이 바뀌면 모두 중단됩니다. –

0

WPF의 데이터 바인딩은 Winforms에서 달성 할 수있는 것 이상입니다. 이 플랫폼은 본질적이며 전반적으로 널리 퍼져 있습니다. 데이터 바인딩 시스템을 이해하지 않고 WPF를 이해할 수 없다고 주장합니다.

확실한 함정이있는 것은 아닙니다. 끊어진 바인딩은 종종 사용자가 좋아할만큼 명확하지 않지만 이러한 문제를 식별하고 플래그를 지정하는 데 도움이되도록 개선되었습니다.

2

네, 확실히 확실히 데이터 바인딩을 사용해야합니다. WinForms와 ASP.NET은 일관되게 그리고 유지 보수가 가능한 방식으로 데이터를 바인딩하는 데 항상 투쟁했지만 Silverlight와 WPF는 처음부터 데이터 바인딩 즐거움을 위해 제작되었습니다.

  • 바인딩은 그래서 당신이 당신의 모델에서 데이터를 이동하는 지루한 배관 코드를 작성하지 않아도 두 방법입니다. 을 구현하면 안됩니다.은 불가능합니다.
  • 변환기을 사용하면 기본값이 작동하지 않는 경우 사물이 바인딩되는 방식을 처리하는 코드를 작성할 수 있습니다. 불필요한 쓰 기 쉬운 변환기를 사용하면 부울을 가시성 설정, 문자열을 이미지, 정수를 배경색 등에 바인딩 할 수 있습니다. 하늘이 한계 다.
  • MVVM과 같은 패턴은 WPF 및 Silverlight의 풍부한 데이터 바인딩 지원에 이상적입니다. MVVM을 사용하면 느슨하게 결합 된 코드와 데이터 바인딩을 모두 사용할 수 있습니다.
  • 요소 바인딩을 사용하면 속성 하나의 요소를 다른 요소의 속성에 바인딩 할 수 있습니다. 변환기와 함께 슬라이더 컨트롤의 현재 위치를 목록 컨트롤의 선택된 인덱스에 바인딩하는 등의 작업을 수행 할 수있는 강력한 기능을 제공합니다. 두 가지 방법.
  • 딥 바인딩은 모델 속성의 속성에 바인딩 할 수 있음을 의미합니다. 항상 그래야 할 것은 아니지만 할 수 있습니다.
  • 바인딩은 거의 동적 인 -ness에서 마술입니다. 모델이 동일한 바인딩 된 속성을 계속 지원하는 한 모델의 정적 유형이 변경 되더라도 바인딩은 계속 작동합니다. 바인딩도 미친 유연한입니다. 당신은 컬렉션, 인터페이스, 복잡한 객체, 당신이 좋아하는 거의 모든 것을 바인딩 할 수 있습니다.
  • DataContexts은 페이지, 컨트롤 또는 컨테이너 수준에서 데이터 바인딩을 설정하는 데 사용할 수 있습니다. 컨테이너의 자식은 동일한 데이터 컨텍스트를 상속받습니다. 이렇게하면 페이지 수준에서 한 번 바인드 한 다음 나머지 페이지에 대해 바인딩 경로를 사용할 수 있습니다.
1

WPF 또는 Adobe Flex 또는 Winforms이면 데이터 바인딩은 응용 프로그램이 복잡 해지면 항상 문제를 발생시킵니다. 더 쉬운 디버깅을 위해 데이터 바인딩을 피하는 편이 낫습니다. 그러나 데이터 바인딩은 우리가 피할 수없는 모든 WPF에서 실행됩니다. XAML에서 데이터 바인딩을 수행하면 개발자가 제어 할 수 없게됩니다.

코드에서 데이터 바인딩을 유지하면 훨씬 쉽게 디버깅 할 수 있다고 생각합니다.

데이터 바인딩없이 MVVM을 상상해보십시오. 더러워 보일 것입니다. 기술을 이용하는 디자인 패턴은 좋지만 특정 기능에 전적으로 의존하는 디자인은 재앙입니다.

관련 문제