2014-02-12 47 views
0

在我的應用程序資源,我有:的Silverlight XAML不能得到空Double

<Application.Resources> 
    <System:Double x:Key="DefaultMargin">15.0</System:Double> 
    ... 

現在在後面的代碼我試圖獲得價值

double? margin = Resources["DefaultMargin"] as double?; 

但它總是空,

我的問題是: 如何在我的應用程序中設置const double以便我可以從xaml和C獲取它#

編輯:提示:我正在WP7/8上工作

+1

如果你知道這是一個雙重的,你爲什麼不使用它作爲一個雙?爲什麼試圖將其轉換爲'可空'? – nvoigt

+0

你不能從xaml中獲得正常的雙倍的c#double,只允許使用可空的

回答

1

我不確定silverlight,但在wpf這個作品。你需要訪問App.Current.Resources,因爲你在那裏存儲它。

double? margin = App.Current.Resources["DefaultMargin"] as double?; 
+0

多數民衆贊成它!我錯過了當前befor資源,Thx! –

0

定義您的視圖模型有問題的值(或任何你頁面的上下文設置了堅持INotifyPropertyChanged的)和訪問這種方式在兩個水平上。

如果您需要訪問它的資源,然後將其設置,如:

myWindow.Resources.Add("myResourceKey", myViewModel.myValue); 

訪問它在XAML是通過StaticResource

"{StaticResource myResourceKey}" 

或如前所述甚至結合

"{Binding myValue}" 

因此有三種方法可以獲得價值。

+0

這是一個選項,但你必須在c#中設置它,我寧願保留在XML文件中的所有配置 –