我有一些圖片資源字典:結合資源鍵,WPF
<BitmapImage UriSource="..\Images\Bright\folder-bright.png"
x:Key="FolderItemImage" />
我已經創建樹形視圖項HierarchicalTemplate
類似如下:
<HierarchicalDataTemplate ItemsSource="{Binding VisibleChildren}"
DataType="{x:Type st:StructureTreeItem}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding ImageResourceKey}" />
<Image x:Name="iIcon2" Source="{DynamicResource FolderItemImage}"/>
<Image x:Name="iIcon"
Source="{DynamicResource {Binding ImageResourceKey}}"/>
</StackPanel>
</HierarchicalDataTemplate>
現在,顯示項目時:
- 正文塊顯示
FolderItemImage
- 顯示第一張圖片
- 第二張圖片未顯示。
整個想法是項圖像設置爲存儲在資源的,但不幸的是上面介紹的技術將無法正常工作,現在我知道了,爲什麼:
<Image x:Name="iIcon3" Width="16" Height="16" Margin="0, 1, 3, 1" >
<Image.Source>
<DynamicResource ResourceKey="{Binding ImageResourceKey}" />
</Image.Source>
</Image>
結果:
在PresentationFramework.dll中發生未處理的「System.Windows.Markup.XamlParseException」異常異常
附加信息:無法在'DynamicResourceExtension'類型的'ResourceKey'屬性上設置'綁定'。 '綁定'只能在DependencyObject的DependencyProperty上設置。
所以我不得不改變我的問題:如何將模型中存儲的某些數據(資源鍵,也許?)轉換爲動態資源?它有是一個動態資源,因爲我確定它可能會在運行時更改。
你從哪兒弄來的主意,用這個?:'{DynamicResource {結合ImageResourceKey}}'。我從來沒有見過,它看起來不正確,所以爲什麼不使用這個?:'{Binding ImageResourceKey}'。請顯示您的'ImageResourceKey'的定義。 – Sheridan
因爲ImageResourceKey是一個字符串,它是DynamicResource的一個鍵。 ImageResourceKey的定義是:'string ImageResourceKey {get;組; }':) – Spook
+1永遠帶着深刻而有趣的問題。 – Sheridan