相关疑难解决方法(0)

绑定到资源键,WPF

我有一个带有一些图像的ResourceDictionary:

<BitmapImage UriSource="..\Images\Bright\folder-bright.png"
             x:Key="FolderItemImage" />
Run Code Online (Sandbox Code Playgroud)

我创建了一个HierarchicalTemplatefor treeview项,如下所示:

<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>
Run Code Online (Sandbox Code Playgroud)

现在,当显示项目时:

  • 文本块显示 FolderItemImage
  • 显示第一张图片
  • 未显示第二张图像.

整个想法是将项目图像设置为存储在资源中的图像,但不幸的是,上面介绍的技术不起作用,现在我知道,为什么:

<Image x:Name="iIcon3" Width="16" Height="16" Margin="0, 1, 3, 1" >
    <Image.Source>
        <DynamicResource ResourceKey="{Binding ImageResourceKey}" />
    </Image.Source>
</Image>
Run Code Online (Sandbox Code Playgroud)

结果:

PresentationFramework.dll中发生未处理的"System.Windows.Markup.XamlParseException"类型异常

附加信息:无法在"DynamicResourceExtension"类型的"ResourceKey"属性上设置"绑定".'绑定'只能在DependencyObject的DependencyProperty上设置.

所以我必须重新解释一下我的问题:如何将模型中存储的某些数据(可能是?)转换为动态资源?它必须是一个动态资源,因为我确信它可能会在运行时发生变化.

c# wpf binding dynamicresource

12
推荐指数
3
解决办法
2万
查看次数

标签 统计

binding ×1

c# ×1

dynamicresource ×1

wpf ×1