저는 MVVM을 처음 사용하기 때문에 앞으로 다가올 프로젝트에서이 기술을 채택하고 채택하기로 결정했습니다.MVVM에서보기 모드와 편집 모드간에 전환 하시겠습니까?
이 관련 질문과 대답을 읽었지만 이것이 MVVM으로 어떻게 구현되는지 모르겠습니다.
내 프로젝트의 모든보기에 2 개의 모드, 편집 모드 및보기 모드가 있어야합니다.
기본적으로 사용자가 모든 필드에 대해 TextBoxes를 보지 못하도록하고 싶습니다. 대신 TextBlocks를 보거나 (TextBoxe
'을 IsReadOnly
속성으로 설정하면 스타일 등을 통해 알 수 있습니다.)
사용자가 엔티티를 열면 일반적으로 TextBlocks, Labels (또는 읽기 전용 텍스트 상자) 등이되어야하며 "편집"(권한이있는 경우)을 클릭하면 편집 모드로 들어가야하고 모든 필드의 레이블은 TextBoxes (RichTextBoxes 등, ComboBoxes 또는 레이블이 아닌 다른 편집 가능한 필드)로 반전되어야합니다.
저는이 문제가있는 유일한 사람이 아니라고 확신합니다. 전문가로부터 가장 효율적인 방법은 무엇입니까? 순수 MVVM에서 이러한 모드 사이에, 그리고 그것의 두 가지 별도의보기를 선언하는 것이 일반적인지 여부입니다.
어떻게하면되는지 설명하는 좋은 기사를 참조하십시오. (아마도 Visual State? IDK로 수행됩니다.)
UPDATE
내가 알고 싶은 무엇 오히려 방법보다 내 질문 패턴에 대해, 그리고 내가 V 또는 VM 중 하나에서보기 모드에서 편집 모드 을 분리해야입니까? 답변에서이 세부 사항을 강조하십시오.
미리 감사드립니다.
그리고 다른 분야는 어떻습니까? 일부 필드는 드롭 다운으로, 일부는 슬라이더로, 일부는 날짜 선택으로,보기 모드에서는 모두 간단한 TextBlocks/레이블을 사용하고 싶습니다. 그리고 그것은 저에게 아주 필수적인 부분입니다. – Shimmy
@Shimmy - 죄송합니다. 그 이유는 모르겠습니다. ComboBox에 대해서도 동일한 작업을 수행 할 수 있지만 바인딩 할 필요가있는 IsEnabled 속성 일 수 있습니다. – ChrisF
그래서 기본적으로 편집 /보기 모드에 대한 일반 뷰를 작성해야하며 모든 컨트롤이 IsReadOnly 또는 Visibility 컨트롤을 VM의 IsViewMode (컨트롤을 숨기려면 BooleanToVisibility 변환기 사용)에 설정하는 것과 비슷합니다. 맞지? ** 내 질문에 일부 내용을 추가했습니다. ** – Shimmy