2009-12-02 7 views
0

현재 데이터베이스에 다양한 항목을 추가/편집/제거 할 수있는 인터페이스가있는 mv-vm을 사용하는 응용 프로그램 (Silverlight)이 있습니다. 좋은 비유는 자동차에 포함시킬 기능이 무엇이든 많은 체크 박스와 콤보 박스가있는 자동차를 주문하는 페이지입니다.Complex UI를 깨끗하고 효율적으로 매핑하십시오.

내 응용 프로그램에는 포함 된 옵션을 저장하기 위해 사전을 사용하는 데이터 객체에 매핑 할 UI 요소 (TreeViewItemCheckBox가있는 TreeView 포함)가 많이 있습니다.

필자의 노력으로 이러한 UI 요소를 내보기 모델에 매핑하여 컴파일하고 데이터베이스로 보낼 수있는 최선의 방법을 찾고 있습니다. 내 초기 방향은 각 요소를 내 뷰 모델의 속성에 매핑하는 것이지만 무겁고 서툰 것처럼 보입니다.

<TreeView> 
    <TreeViewItem> 
     <TreeViewItem.Header> 
      <TreeViewItemCheckBox Content="All Features" IsChecked="{Binding AllFeaturesChecked}"/> 
     </TreeViewItem.Header> 
     <TreeViewItemCheckBox Content="Feature1" IsChecked="{Binding Feature1Checked}"/> 
     <TreeViewItemCheckBox Content="Feature2" IsChecked="{Binding Feature2Checked}"/> 
     <TreeViewItemCheckBox Content="Feature3" IsChecked="{Binding Feature3Checked}"/> 
     <TreeViewItemCheckBox Content="Feature4" IsChecked="{Binding Feature4Checked}"/> 
    </TreeViewItem> 
</TreeView> 

... 10을 곱하면 아이디어를 얻을 수 있습니다.

누구나 이것에 대해 더 좋은 방법을 생각할 수 있습니까?

감사합니다.

답변

1

ViewModels이이 논리를 담당하지 않는 이유는 무엇입니까? 매우 일반적인 것으로 만들기는 쉽지만 항상 사전에 맞지 않는 복잡한 UI를 사용하게됩니다. 많은 엣지 케이스. 나는이 제안 것이다 :

public class BaseViewModel : ViewModel //Your basic viewmodel with INPC, etc 
{ 
    public virtual void LoadModel(DictionaryTypeThing model) {} 
    public virtual DictionaryTypeThing GetModel() {} 
} 

여기

은 독서의 책임을 부여하고,이 경우 모든 것을 함께 조각 방법에 대한 대부분의 지식을 가진 앱 조각 뷰 모델에 그 사전을 만드는.