2011-08-03 59 views
1

我正在開發一個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 
}