用户控件的数据上下文

2023-12-01

我正在创建一个UserControl我想用这样的东西:

<controls:ColorWithText Color="Red" Text="Red color" />

到目前为止,我已经实现了类似的控件,如下所示:

<UserControl x:Class="Namespace.ColorWithText" Name="ThisControl">
    <StackPanel Orientation="Horizontal" >
        <Border Width="15" Height="15" Background="{Binding Color, ElementName=ThisControl}" />
        <TextBlock Text="{Binding Text, ElementName=ThisControl}" />
    </StackPanel>
</UserControl>

where Color and Text是代码中定义的控件的依赖属性。这可行,但指定ElementName每次都显得没有必要。

另一个有效的选择是使用

<UserControl x:Class=… DataContext="{Binding ElementName=ThisControl}" Name="ThisControl">

并且没有指定ElementNames,但这对我来说似乎也不是一个干净的解决方案。

我有两个问题:

  1. 为什么不<UserControl DataContext="{RelativeSource Self}"> work?
  2. 做这样的事情最好的方法是什么?

对于第一个,请尝试:

<UserControl DataContext="{Binding RelativeSource={RelativeSource Self}}">

对于第二个问题,我认为使用ElementName or AncestorBinding是最好的绑定方式UserControl的属性。

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

用户控件的数据上下文 的相关文章

随机推荐

  • 如何将数字传递给 .hideRow()?

    我从以下位置得到了以下脚本 Mike Grace 的网站 Deletes rows in the active spreadsheet that contain Yes in column A function readRows var s
  • 如何在 Windows 版 Git 客户端中对 TFS 服务器进行身份验证?

    我们在公司域上设置了 TFS 2017 服务器 我想使用 Windows CMD 行的 Git 从该 TFS 服务器上的存储库推送和提取代码 我已将必要的证书添加到本地商店 以便通过 SSL 障碍 但现在当我尝试将远程存储库克隆到我的域加入
  • 圆形 UIButton

    我想知道是否可以绘制圆形 UIButton 不是圆角矩形 当我在自定义类型的 UIButton 中添加圆形图像时 它看起来像一个圆形按钮 但在单击按钮时 按钮的边界变得可见 因此它看起来像一个方形按钮 然后当单击结束时 它又看起来像一个圆形
  • Selenium 代理服务器参数 - 未知错误:net::ERR_TUNNEL_CONNECTION_FAILED

    希望你一切都好 我在尝试设置 chrome webdriver 时遇到了一些问题 我正在尝试更改网络驱动程序的参数以轮换用户代理和 IP 我将其用于抓取目的并且不想获得具有相同 IP 和 UA 的位置 当我通过 UA 参数时 一切正常 但是
  • 如何使div可拖动

    如何使元素可以在两个 div 之间拖动 这似乎是可拖动的应该做的事情 但我无法使用我拥有的代码 在这个 jsfiddle 中 我有两个带有可拖动元素的 div 我想让一个元素从第一个 div 转到第二个 div 许多网站上都必须存在该功能
  • jQuery DOM 对象的 x y 文档坐标

    我需要获取 DOM 元素的 X Y 坐标 相对于文档的顶部 左侧 我找不到任何可以为我提供这些的插件或 jQuery 属性或方法 我可以获得 DOM 元素的顶部和左侧 但这可以相对于其当前容器 父级或文档 你可以使用方面插件 已弃用 包含在
  • React Native {NativeModules} 未在 M1/Silicon mac 上导入 - 返回空对象 {}

    我试图在一个开发的项目中创建一个 React native 本机模块 BankedSdk M1MacBook 但是 任何初始化模块的尝试都会返回一个空对象 这是适用于我的示例 2020 存储库intel机器 https github com
  • Java 中的 PHP strtotime() ?

    我正在寻找一种简单的方法来从用户可能输入的任何类型的时间输入生成MySQL DATETIME PHP 的 strtotime 函数使这一切变得简单 它可以执行以下操作 strtotime 2004 02 12T15 19 21 00 00
  • Oracle:将字段标准化为 CSV 字符串

    我有一些一对多标准化数据 如下所示 a x a y a z b i b j b k 什么查询将返回数据 使得 多 端表示为 CSV 字符串 a x y z b i j k Mark 如果您使用的是版本 11gR2 而谁不是 那么您可以使用
  • 在VBA中重复随机变量

    如何使用 randomize 和 rnd 来获取随机变量的重复列表 通过重复列表 我的意思是 如果您运行循环来获取 10 个随机数 则列表中的每个随机数都将是唯一的 此外 如果再次运行该序列 您将获得与之前相同的 10 个随机数 来自微软自
  • Python 自定义比较器如何工作?

    我有以下 Python 字典 2 3 4 5 3 1 0 0 0 1 4 1 10 1 2 3 现在我想根据字典值的值之和对它们进行排序 因此对于第一个键 值之和为 3 4 5 12 我编写了以下代码来完成这项工作 def myCompar
  • Qt:制作不同颜色的堆叠条形图[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在尝试在 Qt 中制作一个时间线 其中不同的颜色代表不同的任务 最终 它应该看起来有点像这样 但只有一行 现在有人知道如何在不安装额外库的情况下仅使用 QPaint 来做到这一点
  • Matplotlib:使用 twinx 叠加时箱线图和条形图会发生变化

    当我创建条形图并使用 twin x 覆盖条形图时 与条形相比 框看起来向右移动了一位 这个问题之前已经被识别过 Python pandas 绘制如果孪生两个 y 轴则移动 x 轴 但该解决方案似乎不再有效 我使用的是Matplotlib 3
  • ““void (exeCallback::*)(int)”类型的值不能分配给“void (*)(int)”类型的实体”[重复]

    这个问题在这里已经有答案了 可能的重复 禁用 错误的函数转换 警告 我试图让我的大脑围绕 C 函数指针 为了保持我的学习经验基础 我创建了一个测试函数指针示例 最终 我想通过引用传递所有就绪的实例化对象 以便我可以回调该对象的方法 然而 为
  • 使用 AWK/Grep/Bash 从 HTML 中提取数据

    我正在尝试编写一个 Bash 脚本来从 HTML 页面中提取结果 我用Curl实现了获取页面内容 但下一步是解析输出 这是有问题的 该页面有趣的内容如下所示 div class result div class item div class
  • 如何修复使用 zxing 2.1 生成的不清晰的二维码图像?

    我使用zxing 2 1库生成了二维码图像 但图像非常模糊且不清晰 我可能哪里出错了 生成发生在较低级别 然后根据宽度和高度请求进行缩放 您可以请求生成更高的宽度和高度 ZXing 在查看器中公开了您可以设置的 BarcodeOptions
  • MySQL 按两个值排序

    简而言之 我有一个游戏 它的计分板显示了玩家最后的分数 他们花了多长时间才达到这个分数 我需要对 MySQL 结果进行排序 以便最快时间的最高分数排在第一位 最慢时间的最低分数排在最后 并且两者之间的所有内容都以相同的方式排名 但我不知道该
  • collectingAndThen方法足够高效吗?

    我最近开始使用collectingAndThen 发现与我用来执行类似任务的其他编码程序相比 它花费的时间有点长 这是我的代码 System out println CollectingAndThen Long t System curre
  • 分割逗号分隔的字符串,但忽略逗号后跟空格

    公共静态无效主 字符串 args String title Today and tomorrow 2 1 2 5 0 String titleSep title split System out println Arrays toStrin
  • 用户控件的数据上下文

    我正在创建一个UserControl我想用这样的东西