2010-12-20 3 views
0

MVVM WPF 응용 프로그램이 있는데보기에 '사용자 설정'이 삽입되어 있습니다. 이러한 설정에는 마지막으로 사용한 검색어 나 데이터 격자의 열 너비 등이 포함됩니다. 이는 잘 작동하며 ViewModel은 View Specific 및 ViewModel을 여러보기에서 공유 할 수 있으므로 이러한 설정을 인식하지 못합니다.XAML MVVM Multibinding

이 값은 뷰의 Xaml에 바인딩됩니다.

그러나 일부 설정에는 ViewModel의 속성에 대한 간섭 수준이 있습니다.

예 :

뷰 모델은 쿼리가 찾아온다 결과의 수를 제한하는 데 사용됩니다 public int MaxResults { get; set; }의 속성이 있습니다.

사용자가이 값을 100에서 50으로 변경하면보기 설정에이 값을 저장하는 것이 가장 이상적입니다. 보기의 값이 50을 사용하는 다음 시간을 가능하게함으로써 오히려

(100)보다 사용되는 내 첫 번째 질문 :

내가 모두보기 설정 결합 할 수있는 방법

과 같은 요소에 뷰 모델 속성? 다중 값 변환기를 생각하고 있지만이 작업을 수행하는 데 더 재미있는 방법이 있는지 확신 할 수 없습니다. 두 바인딩을 모두 필요로하지만 끔찍한 업데이트 루프에 빠지지는 않습니다.

내 두 번째 질문 :

가 가끔 뷰 모델은보기 설정에서 제공하는 값보다 우선 할 것입니다. 한 바인딩 된 값을 다른 값보다 우위에 두는 것에 대한 제안이 있으면 궁금합니다.

모든 댓글/답변/질문 크게 감사하겠습니다.

+1

스택 오버플로에 대한 질문은 무료입니다. 두 가지 질문이있는 경우 무료로 두 가지 질문을 열 수 있습니다. –

답변

0

ViewModel에 이러한 설정을 모르는 점은 없습니다. 나는 이러한 사용자 환경 설정을 제어하는 ​​VM을 보유하고 뷰를 바인딩을 통해 선택하도록했습니다.

이것은보기 모델에서 이러한 환경 설정을 제어 할 수있는 장점이 있으며 사용자 기본 설정이 유닛 테스트를 통해 VM에 올바르게로드되는지 테스트 할 수 있습니다.

VM은 모델의 뷰이므로 VM을 통해로드 된 사용자 환경 설정이 여기에 적합하며 이와 같은 경계 사례를 가질 확률은 훨씬 적습니다.