2010-03-14 3 views
0

지금까지 계획 한대로 속성 관리자가 수신하는 "항목 선택"이벤트가 있습니다. 실제 속성 관리자는 ContentControl입니다. 개체를 선택하면 내용 속성이 설정되고 개체 편집을위한 적절한 DataTemplate이로드됩니다.WPF에서 속성 관리자/편집기 구현

일반적으로이 "MVVM"스타일을 수행하려고합니다. 템플릿 대신 리플렉션을 사용할 수 있다고 생각하지만 지금까지 소수 유형 만 보유하고 있습니다.

비슷한 것을 구현 한 사람이 있습니까?

조언이나 소스 코드를 제공 할 수 있습니까?

답변

1

기본적으로, 당신이 찾고있는 것은 PropertyGrid가이 한 번 봐 가지고 ...입니다 : http://www.codeplex.com/wpg

+0

예. 방금 발견했습니다. 아마도 많은 유형의 제 유형이 약하게 모델링되었지만 "유형 식별자"에 따라 다른 편집자를 표시해야하지만 반영을 사용해야합니다. 내 질문에 내 응용 프로그램에 속성 검사기를 연결하는 아키텍처에 대해 많은 것 같아 – Schneider

+1

기본값, 범주, 편집기 ...)와 같은 ComponentModel 특성을 이해할 수 있으므로 Reflect 대신 TypeDescriptor를 사용해야합니다. –

+0

그냥 궁금한 사람은 "WPG"프로젝트가 대상으로 표시됩니다. net 4 – Schneider

0

당신이 ItemSelected 이벤트를 갖는 설정하는 코드를 사용하는 대신 다음이 MVVM 스타일을하고 싶은 경우 검사관의 내용은, 당신의 ViewModel에서의 selectedItem 속성을 가지고 있고, 그 속성에 관리자의 내용을 결합 :

<ContentControl Content="{Binding SelectedItem}" /> 

당신이 당신의보기 및 모델의 특성에 따라 달라집니다의 selectedItem을 업데이트하는 방법. 예를 들어 항목이 ListBox와 같은 Selector 컨트롤에 표시되면 Selector.SelectedItem을 ViewModel의 SelectedItem에 양방향으로 바인딩하면됩니다.

+0

이것은 실제 속성 편집기이므로 다른보기와 분리되어 있습니다. 자체 도구 창에 있으므로 ListBox와 같이 바인딩 할 '로컬'컨트롤이 없습니다. 현재 Mediator 패턴을 사용하여 계획하고 있습니다. – Schneider

+0

viewmodel은 여러 창에 걸쳐있을 수 있습니다. 도구 창을 "관찰 된"창과 동일한 viewmodel 인스턴스에 바인딩하면됩니다. 물론 편집자가 항목을 표시 할 수 있어야하는 여러 "문서"창이있는 경우 해당 계획은 너무 흩어집니다. 하지만 그래, 중재자는 좋고, 더 일반적으로 들린다. – itowlson

0

WPF Inspector 프로젝트를 살펴보십시오. Snoop과 같은 스파이 유틸리티이지만 트리거를 디버그하는 기능도 포함되어 있습니다.

관련 문제