WPF 图像源与 StringFormat 绑定

2024-01-26

我是 WPF 和 MVVM 的新手(本周开始尝试)并尝试在运行时绑定图像资源。我尝试显示的项目包含一个枚举属性,该属性指示项目的类型或状态:

public class TraceEvent
{
    /// <summary>
    /// Gets or sets the type of the event.
    /// </summary>
    /// <value>The type of the event.</value>
    public TraceEventType EventType { get; set; }
}

据我所知,Image 的 Source 属性有一个值转换器,它接受字符串并返回 Uri 对象。

<Image Source="{Binding Path=EventType, StringFormat={}/AssemblyName;component/Images/{0}Icon.ico}" />

那么为什么上面的方法不起作用呢?如果我直接输入 uri(不绑定),图像将完美显示。事实上,如果我在 TextBlock 中进行绑定并在图像中使用该值的结果,也不会出现问题:

<TextBlock Visibility="Collapsed" Name="bindingFix" Text="{Binding Path=EventType, StringFormat={}/AssemblyName;component/Images/{0}Icon.ico}"/>
<Image Source="{Binding ElementName=bindingFix, Path=Text}" />  

我很确定我在与图像有关的如此明显的事情上做了一些可怕的错误。

Thanks.


仅当目标属性实际上是字符串时才使用 StringFormat - Image.Source 属性是 Uri,因此绑定引擎不会应用 StringFormat。

一种替代方法是使用值转换器 http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx。要么编写一个在 ConverterParameter 中采用字符串格式的通用 StringFormatConverter,要么编写一个更具体的 ImageSourceConverter,例如

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
    return string.Format( "/Images/{0}Icon.ico", value );
}

请注意,如果您的图像与使用的程序集位于同一个程序集中,则您不需要在 URI 中指定程序集名称,并且上述语法应该可以工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 图像源与 StringFormat 绑定 的相关文章

  • 如何将图像显示为缩略图

    我有一个QTreeView显示硬盘驱动器和目录 我也有一个QListView显示图像文件如下 但我想将图像显示为缩略图 如下所示 My code mainWidget mainWidget QWidget parent QWidget pa
  • C中输出单个字符

    在 C 程序中打印单个字符时 必须在格式字符串中使用 1s 吗 我可以使用 c 之类的东西吗 yes c将打印单个字符 printf c h also putchar putc也会起作用 来自 man putchar include
  • 如何在JPanel中设置背景图片

    你好 我使用 JPanel 作为我的框架的容器 然后我真的想在我的面板中使用背景图片 我真的需要帮助 这是我到目前为止的代码 这是更新 请检查这里是我的代码 import java awt import javax swing import
  • 如何在标准 WPF ListView 中启用 UI 虚拟化

    我正在使用 NET 4 5 VS2012 并且我有一个 ListView 看起来像这样
  • WPF:使用 StringFormat={}{0:F2} 进行文本框绑定。不显示零

    我使用以下 XAML 将对象绑定到 TextBox
  • 了解使用 Windows 本机 WPF 客户端进行 ADFS 登录

    我已经阅读了大量有关 ADFS 与 NodeJS Angular 或其他前端 Web 框架集成以及一般流程如何工作的文献 并通过 Auth0 Angular 起始代码构建了概念证明 但我不明白如何这可以与本机 WPF Windows 应用程
  • 是否可以在事件处理程序开始期间和结束期间更改一次视图?

    我只需单击一下即可从数据库获取数据 我有一个事件处理程序 触发时应在状态栏中显示 数据检索 并应在事件处理程序结束之前再次更改为 就绪 但文本只更新一次 即第二次 准备就绪 一般是怎么做的 private void Next Click o
  • 如何禁用列表框上的突出显示但保留选择?

    我无法找到如何不允许我的列表框突出显示所选项目 我知道我没有添加触发器来突出显示该项目
  • 在Linux上编译C# + WPF以便在Windows上运行

    我有一个 C 应用程序 其中某些部分是使用 WPF 编写的 Mono 不支持 可以在 Linux 上编译这个应用程序吗 最终 该应用程序将在 Windows 上运行 但它是更大框架的一部分 并且我们的整个构建过程在 Linux 上运行 因此
  • 有没有基于 WPF 的 Markdown 渲染器? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们有基于 WPF 的应用程序 我们有单独的字符串存储库 其中的文本在网络中进行编辑 在我们的 WPF
  • 使用 BlockingCollection 更新 ObservableCollection

    我订阅了一项服务 当收到新元素时 该服务将引发一个事件 我将此元素添加到BlockingCollection 我有第二个线程正在运行 它将循环BlockingCollection添加 更新可观察集合中的元素 问题是你如何添加Observab
  • R 错误:无法更改锁定绑定的值

    我试图估计无限数字流的平均值和标准差 当我运行代码时 出现错误消息 无法更改锁定绑定的值 我做了一些研究 发现这个错误与我使用全局变量有关 但我无法弄清楚 任何帮助将非常感激 在此先感谢您的帮助 define global variable
  • 将多个实时视频流拉入 WPF

    我想创建一个应用程序 将由同轴电缆 hdmi 或其他标准提供的多个实时视频源拉入 WPF 中进行操作 即应用一些转换或像素着色器 然后将其输出到监视器 开始使用这个应用程序时我会考虑什么 有没有任何硬件可以让事情变得更容易 如果您通过同轴电
  • WPF 中处理系统关闭

    如何在 WPF 中重写 WndProc 当我的窗口关闭时 我尝试检查我正在使用的文件是否被修改 如果是 我必须提示用户 你想保存更改吗 消息 然后关闭正在使用的文件和窗口 但是 当我的窗口仍然打开时 我无法处理用户重新启动 关闭 注销的情况
  • 关闭主窗口时 WPF 应用程序不会关闭

    我习惯了在 Visual Studio 中进行 WinForms 编程 但我想尝试一下 WPF 我向我的项目添加了另一个窗口 名为 Window01 主窗口称为MainWindow 之前public MainWindow 构造函数我声明Wi
  • 如何在PHP中将图像从内存上传到AWS S3?

    所以我目前有一个使用 AWS S3 上传图像的上传系统 这是代码 Upload image to S3 s3 Aws S3 S3Client factory array key gt mykey secret gt myskey try s
  • Windows 8 Windows 应用商店应用程序中的中继命令

    由于 CommandManager 在 win8 Metro 应用程序中不可用 是否有 RelayCommand 的版本 有一个版本here https xp dev com svn mytoolkit Shared MVVM RelayC
  • 通过等待任务或访问其 Exception 属性都没有观察到任务的异常

    这些是我的任务 我应该如何修改它们以防止出现此错误 我检查了其他类似的线程 但我正在使用等待并继续 那么这个错误是怎么发生的呢 通过等待任务或访问其 Exception 属性都没有观察到任务的异常 结果 未观察到的异常被终结器线程重新抛出
  • 以编程方式使用自定义元素创建网格

    我正在尝试以编程方式创建一个网格 并将自定义控件作为子项附加到网格中 作为 2x2 矩阵中的第 0 行第 0 列 为了让事情变得更棘手 我使用了 MVVM 设计模式 下面是一些代码可以帮助大家理解这个想法 应用程序 xaml cs base
  • WPF/数据集:如何通过 XAML 将相关表中的数据绑定到数据网格列中?

    我正在使用 WPF DataSet 连接到 SQL Server Express XAML 和 C Visual Studio 2013 Express 我从名为 BankNoteBook 的现有 SQL Server Express 数据

随机推荐

  • 读取整个文件并在lua中打印

    我是 Lua 的初学者 只有一点 C 经验 目前我正在使用 ZeroBrane Studio 作为 IDE 我正在尝试读取一个文件并将整个文件打印到控制台 如下所示 function readAll file local f io open
  • 在Spring Boot 2中,是否可以自动生成具有唯一约束的JoinTable?

    我正在使用 Spring Boot 2 和 PostGres 10 我创建了以下实体 角色和权限 Data Entity Table name Roles public class Role public enum Name USER AD
  • __NSArrayM insertObject:atIndex:];对象不能为零

    我是一个iOS开发新手 我想做加密和解密 我的问题如下 当我运行代码时 解密在模拟器中工作正常 但它无法在 iPhone 设备上运行 我收到如下错误消息 NSArrayM insertObject atIndex object cannot
  • 根据其他值添加列

    我有一个数据框 其中有数百万行和三列 标记为 关键字 展示次数 点击次数 我想添加一列 其中的值取决于此函数的评估 isType lt function Impressions Clicks if Impressions gt 1 Clic
  • 强制 Psych 将 YAML 映射读取为给定类的对象

    我有课Foo应该以最人性化的方式序列化为文本文件 我使用 Ruby 的默认 YAML Psych 和自定义encode with 我的问题是 如果我删除 ruby object Foo像这样 def encode with coder co
  • Azure Verizon CDN - 100% 缓存 CONFIG_NOCACHE

    几天前 我设置了 Azure Verizon Premium CDN 如下所示 Origin Azure Web 应用程序 NET MVC 5 网站 Settings 自定义域 无地理过滤 缓存规则 标准缓存 不关心参数 压缩 启用 优化用
  • 动态赋值给宏函数.pch文件和检查条件.pch文件

    pch 正如其名称所示 显示了预编译器标头 我在文件中定义了一个宏 以便应用程序可以在应用程序编译的一开始就决定 我需要的是 可以通过动态分配值来加载任何宏 例如NSUserDefaults并检查条件 pch文件本身 如果用户从屏幕 开关
  • Spring在运行时动态声明bean

    我想知道以下是否可能 出于测试目的 我希望在应用程序上下文中为不同的测试声明不同的模拟类 这些是使用 Jersey REST 客户端的验收测试 有没有办法在运行时动态声明bean Spring 是否有 API 允许在加载上下文后更改应用程序
  • Scala 异步/回调代码重写

    简单的代码应该通过检查用户 用户是否处于活动状态 然后更新上次登录日期时间 def authenticate Action async implicit request gt loginForm bindFromRequest fold e
  • C++ proc_open 模拟

    PHP 中有一个方便的函数 叫做proc open http php net manual ru function proc open php 它可用于调用可执行文件 打开其stdin stdout and stderr作为管道 这个函数在
  • 如何使用母版页在活动菜单项上设置 css 类?

    当我单击 ASP NET 母版页中的子菜单项或主项时 如何设置活动菜单项颜色 我的代码是 母版页源代码 ul class art menu li a href class span class l span span class r spa
  • GEKKO - 使用自定义目标函数进行参数估计 - 错误代码 -13

    我已经使用 Gekko 教程 线性和非线性回归 中介绍的相同技术成功地执行了稳态参数估计 下面是代码 coding utf 8 Spyder Editor This is a temporary script file from io im
  • WordPress:如何计算标签上的帖子数量

    我有个问题 如何计算某个标签的帖子数量 例子 标记照片 67 Thanks 使用下面的代码 taxonomy category can be category post tag or custom taxonomy name Using T
  • 单例类如何使用接口?

    我在很多地方读到单例可以使用接口 有些我无法理解这一点 每个类都可以实现一个接口 而 Singleton 只是一个 普通 类 它确保除了它可能实现的其他业务逻辑之外 在任何时间点都只存在它的一个实例 这也意味着 Singleton 至少有
  • 在 ColdFusion 中将文件保存到服务器

    经过一些研究后 我觉得这应该可行 但是它没有将文件保存到我的图像目录中
  • 消除 Ref# 参考不存在问题

    In the UpdateDemogInfoDA脚本中 我允许用户输入新信息 在另一个工作表 JBD 中捕获该信息 然后使用 示例数据 选项卡中的新信息覆盖旧信息 然后 当按下新的查找按钮时 将根据以下公式查找CustID填充 由于某种原因
  • 如何在 Bucardo Postgresql multi master 中处理序列

    我们正在三个不同的 Postgresql 服务器上设置一个数据库 将来可能会在更多服务器上 目前使用 bucardo 多主组同步所有表 我们不同步序列 我们尝试过 我们注意到当同时写入发生在不同服务器上的同一个表中时 布卡多会让我们丢失数据
  • 用户是否已经“喜欢”Facebook 帖子

    我已经尝试解决这个问题有一段时间了 并且慢慢意识到我拨打的电话并不是我想要的电话 我目前正在获取用户新闻源并添加一个 喜欢 按钮 但如果他们已经喜欢它 则应该说 不喜欢 我打电话给 me likes 并获得了一些数据 我通过比较新闻源中的每
  • 如何避免单元测试中的Thread.sleep?

    假设我有以下应该测试的方法 Autowired private RoutingService routingservice public void methodToBeTested Object objectToRoute initiali
  • WPF 图像源与 StringFormat 绑定

    我是 WPF 和 MVVM 的新手 本周开始尝试 并尝试在运行时绑定图像资源 我尝试显示的项目包含一个枚举属性 该属性指示项目的类型或状态 public class TraceEvent