2013-08-01 3 views
0

Widnows Store 앱에서 도움말을 만들고 싶습니다. MVVM 패턴을 사용하고 있습니다. MVVM 방법으로ViewModel에서 UserControl의 부모를 얻는 방법

private void MySettingsBackClicked(object sender, RoutedEventArgs e) 
    { 
     if (this.Parent.GetType() == typeof(Popup)) 
     { 
      ((Popup)this.Parent).IsOpen = false; 
     } 
     SettingsPane.Show(); 
    } 

: 내가 제어 XAML을 완료,하지만 난이 작업을 수행하는 방법을 모르는 http://msdn.microsoft.com/en-us/library/windows/apps/jj649425.aspx

:이 발견했다.

답변

1

이이 Page.xaml.cs에는 코드 수 없지만, 그렇지 않은해야한다는 MVVM 패턴에 대한 매우 일반적인 혼란이다. 사실 MVVM 패턴은 UI에 의존하지 않는 로직 부분이 해당 페이지의 ViewModel에 있어야 함을 의미합니다.

예를 들어 일부 컨트롤의 가시성을 일부 Control을 클릭하면이 패턴 아래에서 잘못 표시됩니다. 그것이 메신저 클래스가 당신이 그것을 사용할 수있는 어떤 통지 나 메시지를 보내길 원하는 이유입니다.

그래서 귀하의 경우 모든 그래서 그냥 메신저 클래스를 MVVM을 사용하고 원하는 경우 부모 컨트롤의 정보를 전송 지사입니다.

+0

답변 해 주셔서 감사합니다. MVVM은 cb에서 코드를 의미하지는 않지만 cb를 피하는 것이 좋습니다. 메신저를 사용하는 것이 무엇을 해야할지 모르는 것이 잘못되었다고 생각합니다. 아마도 그런 경우는 아닙니다. 그러나 나는 확인하기를 좋아했다. – user2641078

+0

msdn 링크에서 BlankPage cb의 코드입니다. 이 서비스를 변경하는 것에 대해 어떻게 생각하십니까? – user2641078

+0

조금 더 설명해주세요. "서비스에서 변경 하시겠습니까?" – loop

관련 문제