2009-09-15 4 views
4

현재 brownfield 응용 프로그램에서 작업하고 있습니다. winforms, 으로 작성하여 이후 버전에서 WPF를 사용할 준비를 마쳤습니다. 팀에서는 적어도 MVVM/Presentation 모델을 사용하려고합니다. 나는 아래로 비등 할 때, WPF의 가장 큰 장점은 (내가 아주 많이 사랑)이 사이트의 게시물을 포함한 주제를 탐구 한 ... 윈폼에 대해WinForms를 사용하는 MVVM/프리젠 테이션 모델

를 바인딩 :

  • 컨트롤을 xaml의 속성에 바인딩합니다.
  • viewmodel의 명령 개체에 명령 바인딩.

첫 번째 기능은 (코드에서) 구현하기 쉽거나 양식의 모든 컨트롤을 바인딩하는 제네릭 컨트롤 바인더로 쉽게 만들 수 있습니다.

두 번째 기능은 약간 구현하기가 어렵지만 모든 컨트롤에서 상속 받고 클릭 속성과 같은 내부 이벤트에 의해 트리거되는 명령 속성을 추가하면 ViewModel의 명령 인스턴스에 바인딩됩니다 . 내가 현재 알고 있어요

과제는 다음과 같습니다

  • 가 necessery으로 명령의 CanInvoke 방법을 트리거하는 CommandManager의을 (구현
  • 윈폼는 데이터 바인딩의 한 레벨을 지원합니다. 데이터 소스를, DataMember를, WPF는 훨씬 더 유연하다.

내가 윈폼은 WPF에 비해 부족 다른 주요 기능 실종, 때이 디자인 패턴을 구현하려고?

많은 사람들이 MVP 패턴을 추천 할 것이라고 확신하지만 앞으로의 WPF 지원을 원하기 때문에 MVVM/Presentation 모델이 나를위한 길입니다.

미리 감사드립니다. Erik.

+0

ElementHost를 사용하여 새로운 WPF 컨텐트를 기존 WinForm 응용 프로그램에 드롭하는 것으로 생각하신 적이 있습니까? –

+0

나는 어떤 점에서 아마 그렇게 할 것이다 ... DataTemplates .. 또 다른 도전 과제를 생각해 보았다. datatemlates를 사용하는 대신 usercontrol을 사용하여 내 viewmodel의 객체를 다시 바인딩한다.)) 내 결과에 관심이있는 누구든지 다음 주에 프로토 타입 작업을 시작할 것입니까? –

+0

이 게시물은 CommandManager 구현을 찾는 사람들에게 유용 할 수 있습니다. http://stackoverflow.com/questions/1685088/binding-to-commands-in-winforms – Maciej

답변

1

Update Controls .NET을 참조하십시오. Winforms, WPF 및 Silverlight 용 오픈 소스 라이브러리로서 데이터가 변경 될 때 컨트롤을 최신 상태로 유지합니다. 이제 Winforms를 사용하여 시작한 다음 데이터 모델이나 모델보기 코드를 변경하지 않고 WPF로 전환 할 수 있습니다.

불행히도 Winforms 명령 바인딩 문제는 해결되지 않습니다. 단추 클릭 이벤트는 Winforms에서 WPF로 포팅되지 않습니다. 그러나 데이터 바인딩 문제를 처리합니다.

1

WAF Windows Forms Adapter이 흥미 롭습니다. Windows Forms 응용 프로그램에서 Model-View-ViewModel (MVVM) 패턴을 적용하는 방법을 보여줍니다. Adapter 구현은 Windows Forms에서 명령을 지원하지 않는 솔루션을 제공합니다.

관련 문제