2011-03-09 4 views
0

WPF에 새로 온 사람으로서 WPF에서 UI를 작성하는 방법을 분명히하고 싶습니다. WPVM을 MVVM과 함께 사용하고 있습니다. 내 접근 방식은 UI 트리에서 여러 단계를 실행할 수있는 사용자 컨트롤이 포함 된 기본 창을 사용하는 것입니다. 예를 들어, 창에 편집기가 있습니다. 많은 항목은 편집기에서 편집 할 수 있으며 각 항목의 UI는 다르지만 편집기에는 항상 확인 및 취소 버튼이 표시됩니다. 따라서 OK 및 Cancel이 포함 된 기본 편집기 창은 여러 편집기간에 공유 할 수 있습니다. 에디터 사용자 컨트롤이 편집 된 항목의 뷰 모델을 바인딩하는 방식으로 앱을 디자인하고 있습니다. 따라서 개별 항목을 편집하기위한 UI를 디자인 할 때 확인 또는 취소 버튼을 끌어 들이지 않고 단추를 제공 할 기본 편집기에 항목을 넣기 만하면됩니다. WPF 명령 인프라를 사용하여 명령을 올바르게 처리 할 수 ​​있다고 확신합니다.사용자 정의 컨트롤이있는 WPF UI 디자인

여기에서 일부 xaml로 명확하게 할 수 있다면 컨트롤 배치 자체에 신경 쓰지 마라. 많은 항목에 공통 UI를 공유한다는 기본 아이디어를 설명하는 것이 좋습니다.

<UserControl Name="EditorMainWindow"> 
<Grid> 
    <StackPanel> 
     <ItemsControl ItemsSource="{Binding ItemToBeEdited}">     
     </ItemsControl> 
     <Button Content="OK" Width="120" Command="{Binding SomethingforOK}" /> 
     <Button Content="Cancel" Width="120" Command="{Binding SomethingforCancel}"/>   
    </StackPanel>    
</Grid> 
</UserControl>  

내가 그 일을하고 방법, 사용자 인터페이스 나무는 여러 단계 깊이 갈 수 있습니다. 클라이언트가 특정 장소에서 UI를 변경하도록 요청하는 경우 여러 장소에서 UI를 변경하고 변경할 필요가 없기 때문에 엄청난 혜택을받을 수 있습니다.

WPF를 처음 접했을 때이 접근법에 어떤 변화가 있는지 알고 싶습니다. 이것이 말이되는지 아닌지 말해 주시겠습니까?

답변

1

많은 시간을 절약 할 수 있습니다. Catel는 이미 창을 제공 :

DataWindow

그것은 MVVM에 대해 완전히 준비가 동적 중첩 된 사용자 컨트롤을 지원 (Catel는 또한 MVVM 프레임 워크입니다). 좋은 점은 상자에서 오류 처리를 지원하기 때문에 창 템플릿에 오류가 발생하면 InfoBarMessageControl에 오류가 표시됩니다.

+0

감사합니다. 그러나 얼마 동안 응용 프로그램이 이미 설치되어 있으므로 프레임 워크를 사용하는 것을 주저합니다. 카르텔은 기색이 좋고, 축하해. – Jimmy

+0

전체 프레임 워크를 사용할 필요는 없습니다. 몇 가지 아이디어 만 사용할 수 있습니다 (이미 많은 문제를 해결했기 때문에). 앱을 수정 해 주셔서 감사합니다. 기본 템플릿을 만드는 것이 좋습니다. Microsoft에서이 기본 기능을 사용하지 않는 이유는 무엇입니까? –

+0

포인트가 찍혔습니다. Catel보고. 다시 감사합니다. – Jimmy