2013-02-20 10 views
1

TechDays 2010 Understanding MVVM을 보았고 어느 시점에서 블렌드와 샘플 데이터 생성에 대해 이야기했지만 블렌드로 생성하는 대신 C# 코드로 데이터를 만듭니다.블렌드 익스프레션으로 샘플 데이터 만들기

샘플 데이터 (샘플 데이터, 새 샘플 데이터 등)를 생성하면 프로젝트 어딘가에 저장됩니까? (예 : 다른 프로젝트에 내 프로젝트를 제공 할 때 동일한 데이터가 혼합되어 표시됩니다. 프로젝트로드)? 샘플 데이터와 라이브 데이터를 쉽게 전환 할 수 있습니까?

+0

(psst, 2 살짜리 물건 같음) – Will

+0

알겠습니다. 그러나 내가 MVVMLight에 대해 묻는 eveytime과 2011 년 비디오를 참고로 언급 했으므로 아직 관련성이 있다고 생각합니다. – chobo2

답변

2

샘플 데이터는 (안 단지 XML) 파일 빌드 유형 DesignData 또는 DesignDataWithDesignTimeCreatableTypes로 표시되어 개체 그래프를 정의 단지 XAML입니다. MSDN에서는 문서가 희미하지만 Silverlight 디자이너에서의 사용에 관한 this document은 2012 년 모든 xaml 디자이너와 기본적으로 같습니다.

이러한 유형의 샘플을 사용할 때는 "실시간 데이터"가 없습니다. 모든 값은 xaml 파일에 설정됩니다. 디자이너 내에서 특정 텍스트 상자의 데이터를 변경할 수는 없습니다. 또한 다른 샘플간에 쉽게 전환 할 수 없습니다.

샘플 데이터를 작성하는 방법은 두 가지가 있습니다. 수동으로 빌드 할 수 있습니다 (유형을 알고 있고 xaml을 작성하는 데 익숙한 경우). 또는 간단한 콘솔 응용 프로그램을 작성하여 오브젝트 그래프를 작성할 수 있습니다 그런 다음 XamlServices 클래스를 사용하여 그래프를 문자열로 직렬화하거나 대신 스트림에 드롭하도록 재 작성하십시오. 여기에 또는 서면으로 작동하지 않을 수있는 몇 가지 C#을 의사의 : 해당 파일에 결과를 드롭, 그에게 .xaml 확장을주고,

public string Serialize(object toSerialize) 
{ 
    var sb = new StringBuilder(); 
    var writer = XmlWriter.Create(sb); 
    XamlServices.Save(writer, toSerialize); 
    writer.Flush(); 
    writer.Close(); 
    return sb.ToString(); 
} 

당신은 단지 새 파일을 생성 솔루션에 저장하고, 설정은 DesignData에 대한 작업 작성 (디자이너가 유형의 구조를 조롱 함) 또는 DesignTimeDataWithDesignTimeCreatableTypes (XamlServices로 그래프를 deserialize 할 수 있고 디자이너에서 사용할 때 예외가 발생하지 않는 경우 후자)

+0

비디오에서 저는 연설자를 연결하여 C#을 사용하여 데이터를 생성하기로 결정했습니다. 그것은 에뮬레이터 (wp7을 사용하는 경우)와 블렌드 중에 디자인 데이터를 사용하는 것과 동일한 문제로 고통을 겪지 만 전개 할 때 실제 데이터를 사용합니까? – chobo2

+0

디자인 데이터를 사용하면 디자인 화면에서만 데이터를 볼 수 있습니다. 가능한 경우 바인딩을 사용한다는 것을 적어도 알고 있어야합니다. 그 (및 바인딩을 생성하는 데 도움이되는 툴링)이 유일한 이점입니다. 디자인 데이터가 배포되지 않았습니다. 내가 그것을 보지 않은 것에 따라 나는 vidya와 말할 수 없다. – Will

+0

@ chobo2 (위의 미안, 전화로는 편집 할 수 없음) – Will