绑定到父级 DataContext 中的依赖项属性

2023-12-10

我想将第三列绑定到CollectionBindingTwo属性位于 Window 的 DataContext 内,而不位于 Items 的 DataContext 内CollectionBindingOne.

通过定义里面的第二个集合<DataGrid>WPF 假定本地范围或其他内容,并指向 ItemsSource 的 Items 中的属性(CollectionBindingOne).

<DataGrid DockPanel.Dock="Top" ItemsSource="{Binding CollectionBindingOne}" AutoGenerateColumns="False">
    <DataGridTextColumn Header="One" Binding="{Binding PropOne}"/>
    <DataGridTextColumn  Header="Two" Binding="{Binding PropTwo}"/>
    <DataGridComboBoxColumn Header="Three" ItemsSource="{Binding CollectionBindingTwo}"/>
</DataGrid>

例如,这有效是因为ComboBox不在 a 内<DataGrid>:

<ComboBox IsEditable="True" ItemsSource="{Binding CollectionBindingTwo}"></ComboBox>

DataGridComboBoxColumn 不是可视化树的一部分,因此通常的RelativeSource/ElementName 绑定格式将不起作用。您可以通过定义ElementStyle 和 EditingStyle这些绑定格式将在哪里起作用。另一种选择是使用 BindingProxy,我将其用于其他位置,并且在没有其他原因定义 ElementStyle/EditingStyle 时将节省一些 XAML。

这是继承自 Freezable 的 BindingProxy 类。

public class BindingProxy : Freezable
{
    #region Overrides of Freezable

    protected override Freezable CreateInstanceCore()
    {
        return new BindingProxy();
    }

    #endregion

    public object Data
    {
        get { return (object)GetValue(DataProperty); }
        set { SetValue(DataProperty, value); }
    }

    // Using a DependencyProperty as the backing store for Data.
    // This enables animation, styling, binding, etc...
    public static readonly DependencyProperty DataProperty =
        DependencyProperty.Register("Data",
                                    typeof(object),
                                    typeof(BindingProxy),
                                    new UIPropertyMetadata(null));
}

现在你的 xaml 看起来像这样:

<DataGrid DockPanel.Dock="Top"
          ItemsSource="{Binding CollectionBindingOne}"
          AutoGenerateColumns="False">
    <DataGrid.Resources>
        <helper:BindingProxy x:Key="proxy"
                             Data="{Binding }" />
    </DataGrid.Resources>
    <DataGrid.Columns>
        <DataGridTextColumn Header="One"
                            Binding="{Binding PropOne}" />
        <DataGridTextColumn Header="Two"
                            Binding="{Binding PropTwo}" />
        <DataGridComboBoxColumn Header="Three" 
                                ItemsSource="{Binding Data.CollectionBindingTwo,
                                              Source={StaticResource proxy}}" />
</DataGrid>

不要忘记在 Window/UserControl 顶部声明辅助命名空间导入。

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

绑定到父级 DataContext 中的依赖项属性 的相关文章

  • WPF PRISM 事件订阅不会消亡

    我有一个 PRISM RegionManager 其中有几个区域 顶部的功能区区域和其下方用于我的视图的主要内容区域 相当基本 该应用程序以主要内容区域中的 主页 视图开始 当我单击功能区上的按钮时 我将第二个视图注入内容区域并在区域管理器
  • 模板类的不明确多重继承

    我有一个真实的情况 可以总结为以下示例 template lt typename ListenerType gt struct Notifier void add listener ListenerType struct TimeListe
  • fgets() 和 Ctrl+D,三次才能结束?

    I don t understand why I need press Ctrl D for three times to send the EOF In addition if I press Enter then it only too
  • SSH 主机密钥指纹与模式 C# WinSCP 不匹配

    我尝试通过 WinSCP 使用 C 连接到 FTPS 服务器 但收到此错误 SSH 主机密钥指纹 与模式不匹配 经过大量研究 我相信这与密钥的长度有关 当使用 服务器和协议信息 下的界面进行连接时 我从 WinSCP 获得的密钥是xx xx
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • 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
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • 使用 LINQ 查找列表中特定类型的第一个元素

    使用 LINQ 和 C 在元素列表中查找特定类型的第一个项目的最短表示法是什么 var first yourCollection OfType
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

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

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 在 ASP.NET 中将事件冒泡为父级

    我已经说过 ASP NET 中的层次结构 page user control 1 user control 2 control 3 我想要做的是 当控件 3 它可以是任何类型的控件 我一般都想这样做 让用户用它做一些触发回发的事情时 它会向
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new

随机推荐

  • 修改 google.translate.TranslateElement 结果中的元素

    我正在尝试将非常方便的 Google Translate 翻译元素嵌入到网页中 这非常简单并且效果很好 但我需要更改在生成的 HTML 中显示的默认文本 在使用过许多 Google API 和 js 库后 我认为这不会有问题 因为它几乎肯定
  • 创建 HuggingFace 数据集来训练 BIO 标记器

    我有一个字典列表 sentences text I live in Madrid labels O O O B LOC text Peter lives in Spain labels B PER O O B LOC text He lik
  • 使用处理程序从服务更新活动

    我想改变 a 的状态ToggleButton in my Activity当事件发生在service 任何人都可以帮我实现这个使用Handler 我的意思是我应该在哪里编写代码来创建处理程序以及如何从服务触发它 我读过类似的帖子 但是它们对
  • 地点选择器自动关闭

    我正在 android 中制作一个简单的地点选择器程序 问题是当我单击按钮时 地点选择器打开并在 2 3 秒后自动关闭 请帮忙 MainActivity java package com example akshay myapplicati
  • Android 发布高分辨率图像内存不足

    各位开发人员大家好 我正忙着让 android 从应用程序上传图像 我也让它工作了 代码如下 但是 当我发送大图像 10 兆像素 时 我的应用程序因内存不足异常而崩溃 解决方案是使用压缩 但如果我想发送全尺寸图像怎么办 我想也许与流有关 但
  • UINavigationController:每次转换后显示具有不同方向的嵌入式视图控制器?

    这是 StackOverflow 上的一个常见问题 但其他解决方案均无效 许多也是几年前写的 以下是一些考虑的帖子 UINavigationController 内的 viewController 是否可以有不同的方向 UINavigati
  • 我可以在返回 void 的函数中使用 return 语句吗?

    我必须返回到递归的上一级 下面的语法对吗 void f some code here return 是的 您可以从 void 函数返回 有趣的是 您还可以从 void 函数返回 void 例如 void foo return void 正如
  • 如何使用 Keras 实现 CNN-LSTM

    我正在尝试实现一个 CNN LSTM 对代表帕金森病 健康控制者语音的梅尔频谱图像进行分类 我正在尝试使用 LSTM 模型实现预先存在的模型 DenseNet 169 但是遇到以下错误 ValueError Input 0 of layer
  • 如何区分活动娱乐是由屏幕旋转还是内存不足引起的

    根据http developer android com training basics activity lifecycle recreating html 有多种方法可以触发活动重新创建 屏幕旋转 内存不足的情况 我意识到屏幕旋转 an
  • MySQL:将大表拆分为分区或单独的表?

    我有一个包含 20 多个表的 MySQL 数据库 但其中一个非常大 因为它从不同的传感器收集测量数据 它的磁盘大小约为 145 GB 包含超过 10 亿条记录 所有这些数据也被复制到另一台 MySQL 服务器 我想将数据分成更小的 碎片 所
  • 半径为 x 的圆中的整数坐标的更快解决方案是什么

    我正在尝试创建一种方法 返回半径为 rad 的圆内的整数坐标计数 但我相信我当前的解决方案太慢了 为了更好地实施 您有什么建议 我想自己编写解决方案 因为我仍然是初学者 这是我当前的解决方案 def points rad possibleP
  • 如何将asp.net转发器控件动态绑定到数据源

    I have a page with a simple dropdown and repeater control in page on submit repeater control is bound to datasource1 whi
  • 有没有办法在 WebView 中使用 Apple San Francisco?

    我的 CSS 样式表似乎工作正常 但我无法将字体更改为与 iOS 11 中使用的系统字体非常匹配的字体 这是我尝试过的 body html color red font family San Francisco 字符颜色为红色 但字体不变
  • Cordova 应用程序“Android 权限 Cordova 插件”未显示权限对话框

    我正在为我的科尔多瓦应用程序使用 imagepicker 插件来从移动图库获取图像并使用它们 我正在 android 6 0 设备上测试我的应用程序 这就是问题所在 marshmallow Android 6 0 需要运行时权限 不像旧版本
  • 使用 OpenEntityManagerInViewFilter 进行延迟初始化?

    我有一些已经可以工作的 JBoss web 应用程序 以及一个延迟初始化问题 因此 建议我在 Spring 中进行调查并使用OpenEntityManagerInViewFilter 尽管如此 我仍然收到错误 希望你能帮助我吗 我还需要在应
  • PHP - 在闭包中访问全局变量的“use()”或“global”之间的区别?

    以下两种在闭包中访问全局变量的情况之间是否存在任何性能或其他差异 Case 1 closure function use global variable Use global variable to do something Case 2
  • 如何在UML中表示接口和类之间的关系?

    我有一些相关的接口和类想要在 UML 中表示 抱歉这些关系 我不知道如何使用 StarUML 正确地做到这一点 实现 IMessage 和 IStorable 的接口 ISMS 的想法 而不是让 SMS 类直接实现这两个接口 旨在使项目更加
  • Shiny 中的 DataTable TableTools 扩展实现

    我有一个 dataTabe 我正在尝试为其实现 tableTools 以便以 csv 格式导出记录 但是 当过滤后的数据超过一页记录时 如此处提供的示例所示 导出按钮不会选取第二页及以后的记录 而只会导出第一页 根据我的研究 似乎oSele
  • 如何为 ImageView 设置随机图像?

    我正在使用 9 个图像视图 当我单击刷新按钮时 我想将图像随机设置为 imageview 但我尝试这样做 它适用于图像的随机分配 但它一次在两个 或 三个图像视图中重复相同的图像 我的代码问题出在哪里 final int imageView
  • 绑定到父级 DataContext 中的依赖项属性

    我想将第三列绑定到CollectionBindingTwo属性位于 Window 的 DataContext 内 而不位于 Items 的 DataContext 内CollectionBindingOne 通过定义里面的第二个集合