2009-08-26 2 views
3

MVVM 기반 응용 프로그램에서 설계자는 디자인 타임에 ViewModel 데이터를 제공해야하므로 Blender3 (및 VS 2008)에서 실제로 볼 수있는 옵션이 있습니다. 어떻게 지내니? 어떻게해도 mc : ignorable을 사용할 수 있습니까?블렌드 및 VS 용 뷰 모델 데이터 제공

답변

4

예, Expression Blend를 사용하면 도움이됩니다. "데이터"탭을 사용하여 생산 데이터와 동일한 모양을 가진 샘플 데이터를 생성하십시오. 데이터 소스를 만들 때 "응용 프로그램이 실행 중일 때 샘플 데이터 사용"의 선택을 취소하십시오. 당신이 당신의 샘플 데이터를 생성 한 후

Sample Data http://www.smips.com/brad/stackoverflow/design-model1.jpg

는 XAML에서 샘플 데이터 페이지의 DataContext를 설정합니다. 그러면 블렌드에서 페이지를 열 때 디자이너가 샘플 데이터를 볼 수 있습니다.

<navigation:Page DataContext={StaticResource MyFakeDesignData} 

로드 된 처리기의 코드에서 DataContext를 실제 모델로 설정하는 코드를 작성하십시오. 이 코드는 앱이 실행 중일 때만 실행되며 앱이 실행 중일 때 샘플 데이터를 사용할 수 없다고 말한 경우 실행중인 앱이 실제 데이터를 가져옵니다.

private void Home_Loaded(object sender, RoutedEventArgs e) 
{ 
    DataContext = new MyRealViewModel(); 
} 
3

VS2010을 사용하면 Design-Time attributes (SL 및 WPF 모두에서 작동)을 사용할 수 있습니다.

  • 네임 스페이스 선언을 추가

    의 xmlns : D = "http://schemas.microsoft.com/expression/blend/ 그것의 문제, 그래서 나는 보통 어쨌든 모의 데이터 소스를 DesignViewModel 2008 ": MockXViewModel X 키 = 윈도/제어 자원에 대한 모의 데이터 컨텍스트

    <UserControl.Resources> < ViewModels를 추가

  • " "/ > </UserControl.Resources>

  • 설정 디자인 타임 데이터 컨텍스트

    < 그리드 D :의 DataContext ="{바인딩 소스 정적 리소스 DesignViewModel = {}} " > ...

잘 작동합니다.