2011-08-03 10 views
1

私はImage Sourceプロパティをデータバインドし、コンバータを使用してイメージを生成するWindows Phone 7アプリケーションを開発しています。これと同じように:デザイナとプロダクションで1つのソースを使用します。

<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 
} 
関連する問題