自定义 WPF 绑定

2023-12-06

我有一个模拟绑定的自定义 MarkupExtension。它在正常分配中效果很好,但在样式设置器中使用时效果不佳,例如:

<Setter Property="Content" Value="{local:MyExtension}" />

结果出现 XamlParseException:

A 'Binding' cannot be set on the 'Value' property of type 'Setter'.
A 'Binding' can only be set on a DependencyProperty of a DependencyObject.

这是扩展的实现:

public class MyExtension : MarkupExtension
{
    public MyExtension()
    {
        Value = 123;
    }

    public object Value
    {
        get;
        set;
    }

    public override object ProvideValue(IServiceProvider serviceProvider)
    {
        var binding = new Binding("Value")
        {
            Source = this,
        };
        return binding.ProvideValue(serviceProvider);
    }
}

有什么问题?!


有点猜测,但这可能是因为 XAML 编译器对Binding类,允许在这个场景(和其他场景)中使用它。这Binding类也是一个MarkupExtension,但不幸的是它密封了其实施ProvideValue().

也就是说,你可能会侥幸逃脱:

public class MyBinding : Binding
{
    private object value;

    public object Value
    {
        get { return this.value; }
        set
        {
            this.value = value;
            this.Source = value;
        }
    }
}

Since ProvideValue将返回Binding无论如何。

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

自定义 WPF 绑定 的相关文章

  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • WPF PRISM 事件订阅不会消亡

    我有一个 PRISM RegionManager 其中有几个区域 顶部的功能区区域和其下方用于我的视图的主要内容区域 相当基本 该应用程序以主要内容区域中的 主页 视图开始 当我单击功能区上的按钮时 我将第二个视图注入内容区域并在区域管理器
  • Func 方法参数的首选命名约定是什么?

    我承认这个问题是主观的 但我对社区的观点感兴趣 我有一个缓存类 它采用类型的缓存加载器函数Func
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • 使用 Microsoft Graph API 订阅 Outlook 推送通知时出现 400 错误请求错误

    我正在尝试使用 Microsoft Graph API 创建订阅以通过推送通知获取 Outlook 电子邮件 mentions 我在用本文档 https learn microsoft com en us graph api subscri
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • .Net Core / 控制台应用程序 / 配置 / XML

    我第一次尝试使用新的 ConfigurationBuilder 和选项模式进入 Net Core 库 这里有很多很好的例子 https docs asp net en latest fundamentals configuration ht
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • C 中的位移位

    如果与有符号整数对应的位模式右移 则 1 vacant bit will be filled by the sign bit 2 vacant bit will be filled by 0 3 The outcome is impleme
  • 可空属性与可空局部变量

    我对以下行为感到困惑Nullable types class TestClass public int value 0 TestClass test new TestClass Now Nullable GetUnderlyingType
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • 更改显示的 DPI 缩放大小使 Qt 应用程序的字体大小渲染得更大

    我使用 Qt 创建了一些 GUI 应用程序 我的 GUI 应用程序包含按钮和单选按钮等控件 当我运行应用程序时 按钮内的按钮和字体看起来正常 当我将显示器的 DPI 缩放大小从 100 更改为 150 或 200 时 无论分辨率如何 控件的
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但

随机推荐

  • 在 Nuxt 中设置输出文件夹的路径

    在 Windows 中工作 我可以使用 nuxt 项目生成静态站点 npx nuxt generate 我有兴趣为生成的静态文件设置输出文件夹 我正在通读https nuxtjs org api configuration generate
  • DBRefs(Mongo 文档引用)未立即获取

    我正在以最简单的方式使用 Mongo 与 Spring Data 结合使用 我有两个 第一类 实体 Documents A 和 B 其中 A 中有 B 的引用 DBRef 创建 A 和 B 时一切正常 但是 当读取对象 A 通过 Id 时
  • Javascript中是否有“0b”或类似的东西来表示二进制数

    我知道0x是 Javascript 中十六进制数字的前缀 例如 0xFF代表数字255 二进制数有类似的东西吗 我希望0b1111来表示数字15 但这对我不起作用 Update 较新版本的 JavaScript 特别是 ECMAScript
  • oracle中的条件选择语句

    我有两个表 分别称为订单和公共假期 如下所示 订单表 OrderId OrderDate 1 10 Mar 2017 2 12 Mar 2017 3 30 Mar 2017 公众假期表 HoliId HolidayDate 1 10 Mar
  • 如何设置 View.setVisibility(GONE) 动画

    我想做一个Animation当一个View将其可见性设置为GONE 不但没有消失 View应该 崩溃 我尝试过这个ScaleAnimation但随后View是折叠的 但布局只会在折叠之后 或之前 调整其空间大小Animation停止 或开始
  • 颜色不被子元素继承?

    我已尝试尽可能简化下面的 HTML 为什么CSS属性 color 01FFDD 被嵌套表的所有元素忽略 嵌套 CSS 使用 div 一般对我有用 但在这里不行 难道我做错了什么 div
  • 一系列承诺[重复]

    这个问题在这里已经有答案了 我正在写一篇文章 我必须从不同城市的 API 获取 json 数据并构建 DOM 到目前为止 我已经能够做到这两点了 唯一的问题是不同城市的API响应时间不同 因此 当我构建 DOM 时 它们的顺序与我调用函数的
  • 从itextsharp注释中弹出一个窗口来显示图像和文本

    我想在 C 项目中添加并弹出窗口 通过单击 itextsharp 注释来显示图像和文本 iTextSharp text pdf PdfAnnotation annot iTextSharp text pdf PdfAnnotation Cr
  • 永久隐藏Android状态栏

    我正在尝试隐藏 Android 4 4 设备上的系统状态栏 这是针对信息亭模式的 其中我的应用程序将是设备上运行的唯一应用程序 目前的目标设备是 2013 款 Nexus 7 该设备已获得 root 权限 并且我已经能够完全删除底部导航栏
  • 使用 ToLower() 进行切换会导致错误 CS0426 类型名称 '' 在类型 '' 中不存在

    为什么编译器仅在 switch 语句中为常量值调用方法时才会抱怨 为什么会出现错误The type name A does not exist in the type CS0426 类型中不存在类型名称 A ClassificationId
  • 非递归地检索二叉树节点的深度

    任何人都可以指出一种获取二叉树中节点深度的方法 不是平衡树 或 BST 不使用递归 最好使用 Java C C 节点表示为 class Node Node Left Node Right string Value int Depth 我的第
  • Camel-K 无法识别本地包

    我有一个使用自己的处理器的 RouteBuilder 类 当使用 Maven 在 Camel 中本地运行时 它运行良好 但是 当我尝试使用camel k时 它说找不到该包 有什么我需要做的吗 我的处理器 package com test p
  • 帕累托优化 - 非支配点

    我编写了一个算法 它返回一个与 nsga2 返回的列表类似的列表 mco 包的 nsga2 pdf 该算法本身无法识别一个点是否为非支配点 它返回的一些点是主导的 它只包含点及其值 而不包含 nsga2 返回的逻辑向量 我试图获得非支配点
  • 从对象(日期对象)解构函数

    如果我想破坏一个对象我会这样做 const obj a a fn gt some function const fn obj fn OR const a fn obj console log fn 这不适用于Date目的 未捕获的类型错误
  • Python 中的字典有单一的 repr 值吗?

    In this question 有人建议在字典上调用 repr 是将其存储在另一个字典中的好方法 这取决于 repr 是否相同 无论键如何排序 是这样吗 附言 最初问题的最优雅的解决方案实际上是使用 freezeset 不 键添加到字典的
  • ipython笔记本工具栏自定义

    我想在 ipython 笔记本上添加一个新的工具栏按钮 我得到了一个好的link提到了这一点 所以我创建一个新文件 ipython profile default static custom custom js 包含以下内容 IPython
  • PdfBox 编码符号货币欧元

    我使用 Apache PDFBox 库创建了一个 PDF 文档 我的问题是在页面上绘制字符串时对欧元货币符号进行编码 因为基本字体 Helvetica 不提供此字符 如何将输出 转换为符号 不幸的是 PDFBox 的字符串编码还远非完美 版
  • 用于 glmer 的用户定义链接函数,用于已知命运生存建模

    生态学中的常见情况是具有二元结果 0 死亡 1 生存 的生存模型 其中个体 在本例中考虑鸟类的个体筑巢尝试 在暴露于死亡风险的天数方面存在差异 为了解决这个问题 我们使用了修改后的逻辑回归 它将暴露天数合并到链接函数中 正如 Shaffer
  • SwiftUI:设置选择器行高

    对于大字体 a 中的线条Picker是重叠的 我该如何更改Picker s行高 提示 lineSpacing修饰符不会这样做 See Also 这个问题类似于Ejaaz 但他的问题至今尚未得到答复 问题 The Code 以下可运行代码产生
  • 自定义 WPF 绑定

    我有一个模拟绑定的自定义 MarkupExtension 它在正常分配中效果很好 但在样式设置器中使用时效果不佳 例如