WPF - 绑定到另一个对象内部的自定义对象的属性

2024-01-06

我正在使用 WPF 4 / C# 工作。我有两个自定义类:

public class c1 {
    public string prop1 { get; set; }

    public c1() {
        prop1 = "world";
    }
}

public class c2 {
    public string prop1 { get; set; }
    public c1 obj1 = new c1();

    public c2() {
        prop1 = "hello";
    }
}

在 XAML 中,我想绑定到这些类的属性。这是我所拥有的:

<Window.Resources>
    <my:c2 x:Key="c2"/>
</Window.Resources>
<StackPanel>
    <TextBlock DataContext="{DynamicResource c2}" Text="{Binding prop1}"/>
    <TextBlock DataContext="{DynamicResource c2}" Text="{Binding obj1.prop1}"/>
</StackPanel>

(这里的<my:c2 ../>实例化 c2 类。)第一个 TextBlock 绑定有效。第二个没有。为什么我无法绑定到 obj1 上的属性?我似乎只能绑定到直接类的属性。我希望能够绑定到其他内容,例如属于直接类的数组中的元素或子类的属性,如上所示。我缺少什么?如果我使用 get/set 将 obj1.prop1 包装在直接类的另一个属性中,它就可以工作。但我不想这样做,特别是如果我开始使用数组,我不想将每个元素包装到单独的属性中!


Your obj1是一个字段,而不是一个属性,因此您无法访问 C1 对象。

考虑一下这个:

public class c2 {
    public string prop1 { get; set; }
    private readonly c1 _obj1;

    public c2() {
        prop1 = "hello";
        _obj1 = new c1();
    }

    public c1 PropObj1 { get { return _obj1; } }
}

And

<TextBlock DataContext="{DynamicResource c2}" Text="{Binding PropObj1.prop1}"/>

附言。下次最好使用具有标准命名约定的示例(例如小写字段/变量、大写属性等),以便人们更快地看到问题!

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

WPF - 绑定到另一个对象内部的自定义对象的属性 的相关文章

随机推荐

  • 显示 django 对象表

    我需要使用 Django 显示数据库中的表 最明显的方法是手动输入表标题并循环查询结果model objects all 然而 由于很懒 我想自动执行此操作 即通过内省加载模型中的所有字段以显示为列标题 并加载所有字段值以显示为行 这种方法
  • Ruby 和 Python 如何实现它们的交互式控制台?

    在为我的编程语言实现解释器时 我首先想到了一个简单的控制台窗口 它允许用户输入一些代码 然后将其作为独立程序作为 shell 执行 但存在严重的问题 如果用户输入的每一行代码都作为独立程序处理 则它必须经过分词器和解析器 然后由解释器执行
  • 在解决方案中运行所有测试时的单元测试顺序

    在一个复杂的 VS2008 解决方案中 我有三个单元测试项目 由于它们在同一个测试数据库上运行 因此测试项目相继执行非常重要 哪个项目先完成并不重要 重要的是一个项目先于另一个项目完成 如果我想全部执行它们 有几种方法可以实现 这会导致不同
  • 从C语言访问MySQL数据库

    我对 MySQL 很陌生 Linux 我想在 MySql 中创建一个数据库 并使用 C 程序将文本文件中的数据填充到数据库中 我找不到太多这方面的信息 这方面有没有明确的材料 有人可以指出我正确的方向吗 Thanks MySQL 附带一个客
  • Android Studio - AVD 管理器不可见

    我已经安装了 Android Studio 2 3 2 和 这AVD管理器 应该在工具菜单下不可见 有什么办法可以让它可用吗 Android Studio 中的工具菜单 菜单和工具栏 在最新的Android Studio gt 3 6 2
  • 从管理面板外部链接到 Magento 管理

    我正在尝试构建一些 CRM 工具 向我的销售人员发送电子邮件并链接回 Magento 管理内的页面 我一直在构建这样的 URL Mage getUrl quotes edit array id gt quote gt getQuoteId
  • 在输入占位符文本中使用 Font Awesome (5) 图标

    我遇到过很多使用 Font Awesome 这是有多少资源指向在占位符文本中添加 Font Awesome 图标
  • ReactJS:从api获取数据和地图数据

    我正在学习 ReactJS 在我的程序中 我正在进行 API 调用 然后对其进行映射 通过 API 调用获取的数据如下 数据 uid 1 标题 你好 uid 2 标题 世界 import ImporterAPI from api const
  • 在 cmake c++ 项目中使用 mongodb cxx 驱动程序

    我是 cmake 新手 我想使用 c 和最新的 mongodb cxx 驱动程序连接到 mongodb 我设法编译并安装了驱动程序 但现在我坚持在我的 cmake 项目中使用它 我使用默认设置安装了 mongodb 驱动程序 因此它位于 u
  • 如何在 tcpdf pdf 生成中使用外部 CSS

    我正在尝试使用 tcpdf 创建网页的 pdf 但这不起作用 该页面是带有外部 css 和 javascript 文件的 php 谁能帮我这个 Thanks 要包含外部 CSS 文件 您可以在添加之前执行以下操作 HTML content
  • 如何使用多个时刻插件?

    我知道如果我想使用它 我必须导入 moment 插件 像这样 import as moment from moment timezone here I can use moment tr names etc 但是如果我想使用多个插件怎么办
  • Docker PHP 容器内的“composer Recipe:update”触发“致命:不是 git 存储库”

    我正在本指南的帮助下将应用程序从 Symfony 5 4 PHP 7 4 升级到 Symfony 6 0 PHP 8 https symfonycasts com screencast symfony6 upgrade framework
  • 在 ASP.NET WebApi 中编写 CDATA

    我使用的设置 formatters XmlFormatter UseXmlSerializer true 我尝试序列化的类非常简单 public class MyClass public MyClass CDATA XmlText publ
  • 修改has_many的行为还是使用范围?

    我有一堂课看起来像这样 class User lt ActiveRecord Base has many users companies has many companies through gt users companies end 对
  • 将 ASP.NET Identity 存储移至 EF Sql 数据库

    默认情况下 ASP NET Identity 用户数据存储在 mdf 文件中 我想将数据存储在 Sql 数据库中 以便我更改了我的默认连接字符串web config到我基于 EF 的连接
  • 如何在 coreCLR 中设置 gcAllowVeryLargeObjects?

    现在既然没有一个app config 如何将 gcAllowVeryLargeObjects 设置为 true 以便可以分配大数组 您可以使用相应的环境变量 https github com dotnet coreclr blob mast
  • Tomcat 7.0.42 错误监听器启动

    我正在 tomcat jdk 7 上部署我的 war 文件 并看到以下错误 不确定是什么导致了这个问题 INFO OpenSSL successfully initialized OpenSSL 1 0 1d 5 Feb 2013 Feb
  • 使用 log4j2 进行 Spring 启动。配置 log4j2 Spring-lookup

    根据 log4j2 文档 Spring Boot Lookup 从以下位置检索 Spring 属性的值 弹簧配置 此查找将返回空值 直到 Spring Boot 初始化应用程序日志记录
  • 通过变量从 Strings.xml 获取字符串

    我想从 strings xml 获取一个字符串 我知道该怎么做 但我的问题是别的 我有一个每次都会更改的字符串变量 每次更改时 我想查看 strings xml 并检查该字符串变量是否存在于 Strings xml 中 然后获取文本 例如
  • WPF - 绑定到另一个对象内部的自定义对象的属性

    我正在使用 WPF 4 C 工作 我有两个自定义类 public class c1 public string prop1 get set public c1 prop1 world public class c2 public strin