2012-10-14 46 views
2

iv'e有一個XAML問題,在使用vs2010的項目中,我們在我的XAML中使用DynamicResource時使用我們自己的CustomBinding 設計人員通過我瞭解以下幾點:{0}對Setter.Value無效。唯一支持的MarkupExtension類型是DynamicResourceExtension和BindingBase或派生類型

CustomBinding is not valid for Setter.Value. 
The only supported MarkupExtension types are 
DynamicResourceExtension and BindingBase or derived types.  

即使它不是在特定的拓展應用..

<SomeControl Value="{CustomBinding SomeValue} 
      Style="{DynamicResource SomeStyle}" /> 

風格=「{DynamicResource SomeStyle}」是拋出了設計時異常 的部分和風格是NE ver設置爲結果。

如果有人遇到類似的問題,請指教。 謝謝。

+0

你的'CustomBinding'派生自'Binding'類嗎? –

+1

它來自MarkupExtension –

+0

假設你的實際源代碼管理中沒有缺失你的缺失引用('Value =「...')是否安全?如果是這樣,CustomBinding的定義是什麼?比如說,它來自'MarkupExtension',那麼你的答案應該是顯而易見的:你必須從DynamicResourceExtension或BindingBase中派生出來,正如錯誤信息所暗示的那樣 –

回答

3

Setter.Value用在你的風格只支持一些硬編碼的類(靜態資源,DynamicResource和BindingBase),因爲價值的提供具有在應用樣式要推遲到如此地步,似乎他們沒有足夠的時間來正確地實現它,他們檢查受支持的類並稍後應用它們。

+0

這太傷心了! – bitbonk