MVVM을 사용하여 GUI를 비즈니스 로직에서 분리하는 마지막 단계?

StackOverflow https://stackoverflow.com/questions/2060274

  •  20-09-2019
  •  | 
  •  

문제

최근에 나는 MVVM을 사용하여 기본 모델에서 GUI를 분리하는 것에 대해 배웠습니다. 나는 현재 응용 프로그램을 MVVM으로 전환 할 수있는 한 많은 것을 배우게되었고 크게 성공했습니다. 이제 Blend에서 생성 된 GUI를 실제로 가져 와서 Visual Studio에서 설계된 현재 GUI 대신 사용하는 방법을 알아 내야합니다. 웹에서 가능한 한 완벽하게 만들기 위해 리소스를 찾을 수 없습니다. 나는 당신이 무엇을했는지 알고 당신을 위해 일을했던 것을 알고 싶습니다.

나의 궁극적 인 해결책은 런타임에 메뉴에서 피부를 선택하고 사용자가 선택하는 현재 GUI를 현재 변경할 수있는 것입니다. 누구 든지이 작업을 수행하는 방법을 설명하는 게시물을 알려줄 수 있습니까?

내 현재 목표는 덜 야심적입니다. 새로운 블렌드 GUI를 Visual Studio 프로젝트에 추가하고 컴파일하면 새로운 Blend GUI가 나타나도록합니다. 오래된 GUI로 돌아가고 싶다면 다시 컴파일해야합니다. 지금은 괜찮습니다.

블렌드 프로젝트를 VS2008 솔루션에 추가하여 시작 응용 프로그램으로 설정했습니다. 잘 작동합니다. 앱을 실행하면 오래된 GUI 대신 새 GUI가 나타납니다. 문제는 이제 원래 시작 애플리케이션의 Bin Debug 폴더 인 다른 폴더에있는 DLL이 필요하다는 것입니다. 원래 GUI를 시작 응용 프로그램으로 남겨두고 앱 CodeBehind가 다른 GUI를로드하도록해야합니까?

또한 각각의 GUI는 뷰 모델에 대한 참조가 필요합니다. 제 경우에는 현재 GUI 클래스에서 인스턴스화했습니다. 블렌드 GUI의 경우 GUI 중 하나만 활성화되기 때문에 거기에도 인스턴스화했습니다. Unity 프레임 워크와 같은 것이 사용되어야합니까?

가능한 모든 질문에 대해 죄송하지만 여기서 어떻게 진행 해야하는지 잘 모르겠습니다. 나는 MVVM이 GUI 관점에서 갈 수있는 길이라는 것을 스스로 증명하는 데 너무 가깝다고 생각합니다 (이미 테스트 가능성 비트에서 판매).

도움이 되었습니까?

해결책 2

나는 내 코드의 한 부분에서 내가 현재 실행중인 조립의 길을 가기 위해 잘못된 속성을 사용하는 실수를 발견했습니다. 나는 지금 사용하고있다

System.Reflection.Assembly.GetExecutingAssembly().Location

이것이 작동하지만 Blend Project의 Bin Debug 폴더에서 EXE를 메인 애플리케이션의 BIN Debug 폴더에 복사하는 경우에만 작동합니다. 건축 후 행사를 사용하여 이것과 함께 살아야 할 것입니다. 나는 지난 몇 달 동안 .NET과 함께 일한 것에 대해 너무 망쳐졌습니다. 코드-비만을 디버깅하려면 블렌드 프로젝트 설정에서 시작 실행 파일을 설정해야합니다. 특히 경로가 동일하게 설정되지 않은 다른 컴퓨터에서 작업 할 때 불편합니다. 여기서 어떤 제안도 감사 할 것입니다!

다른 팁

내가 본 모든 예제는 어떤 형태의 Resourcedictionary Swapping을 사용하여 GUI 모양을 동적으로 전환합니다. 몇 가지 링크 :

런타임에 XAML 리소스 사전을로드하십시오

런타임에 WPF 테마/스타일을 변경합니다

도움이되기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top