2011-08-03 3 views
1

Image Source 속성을 데이터 바인딩하고 변환기를 사용하여 이미지를 생성하는 Windows Phone 7 앱을 개발 중입니다. 그래서 같이 :디자이너에서 하나의 소스를 사용하고 프로덕션에서 하나의 소스를 사용합니다.

<Image Source="{Binding Image, Converter={StaticResource MyImageConverter}}"></Image> 

이 에뮬레이터에서 작동하지만 MyImageConverter 디자이너에 의해 초기화되지 않은 다른 코드에 대한 종속성이 있기 때문에, 디자이너를 충돌합니다. 디자이너가이 특성을 무시하도록 할 수있는 방법이 있습니까, 아니면 디자이너가 사용하는 다른 소스를 지정할 수 있습니까? 중요하다면 Visual Studio 2010을 사용하고 있습니다.

답변

3

을, 당신은에 다음을 사용할 수 있습니다 당신이

public static bool IsInDesignMode 
{ 
    get 
    { 
     return DesignerProperties.GetIsInDesignMode(new DependencyObject()); 
    } 
} 

그런 다음 그에 따라 코드를 포장 디자인 모드에 있거나하지 않으면 찾을 수 있습니다.

+0

그 작품, 고마워요 :) – larspars

+0

당신은 친구 야 :) –

-1

대신 디자이너에서 코드의 소스 속성을 할당하고 조건부 컴파일 사용할 수 있습니다 '디자이너'당신이 혼합 또는 (디자이너 VS) 사이다 언급하는가하면

#if DEBUG 
    // assignments for development mode 
#else 
    // assignments for production mode 
#endif 
+1

이 비록 디자인과 실행 시간 사이의 차이를 보여주지 것입니다. 이것은 이것을위한 컴파일러 지시어가 아닙니다. –

1

가장 간단한 방법은 뷰 모델의 .ctor에 IsInDesignMode을 사용하는 것입니다

if (IsInDesignMode) { 
    //Design time data 
} else { 
    // production 
} 
관련 문제