2012-02-19 83 views
0

我有幾種情況,我嘗試提供強類型XAML標記以查找特定對象的資源,並將其作爲綁定應用於屬性。例如,根據當前的DataContext查找ImageSources。或者基於新的給定綁定。根據當前數據綁定提供資源給屬性

舉例來說,我想獲得的標記有點像這樣的工作:

<Style> 
    <Style.Setters> 
     <Setter 
      Property="DefaultImageSource" 
      Value="{ns:ImageSourceForObject Path}" /> 
    </Style.Setters> 
</Style> 

的NS:ImageSourceForObject將操作很像綁定,最終解決特定的實例。然後它會查找與該實例關聯的ImageSource資源。

我遇到的主要問題是搞清楚如何真正解決ProvideValue內的資源。似乎有沒有辦法得到一個FrameworkElement的一個參考。

我有一個ValueConverter內同樣的問題。

回答

0

MSDN

IProvideValueTarget報告對象的引用,並從那裏標記擴展使用

這樣的背景下,房地產 標識符,我希望你做這樣的事情:

var provideValueTarget = (IProvideValueTarget)serviceProvider.GetService(typeof(IProvideValueTarget)); 
var valueTarget = provideValueTarget.TargetObject as FrameworkElement; 

if (valueTarget == null) 
{ 
    // or maybe throw 
    return null; 
} 

var resource = valueTarget.FindResource("whatever"); 

// etc. 
+0

我不相信這個工作的風格二傳手內。 – wasabi 2012-02-20 20:17:23