当前位置: 首页 > 知识库问答 >
问题:

为什么我在WPF中看到与AreRowDetailsFrozen和HeadersVisibility for Datagrids相关的绑定错误?

陈正业
2023-03-14

系统。Windows.Data错误:4:找不到引用为“RelativeSource FindAncestor,ancestor type =”System的绑定的源。Windows.Controls.DataGrid ',AncestorLevel='1 ' '。binding expression:Path = AreRowDetailsFrozen;DataItem = null目标元素是“DataGridDetailsPresenter”(名称=“”);目标属性是“selectescrollinorientation”(类型为“selectescrollinorientation”)系统。Windows.Data错误:4:找不到引用为“RelativeSource FindAncestor,ancestor type =”System的绑定的源。Windows.Controls.DataGrid ',AncestorLevel='1 ' '。binding expression:Path = headers visibility;DataItem = null目标元素是“DataGridRowHeader”(名称=“”);目标属性为“Visibility”(类型为“Visibility”)

这些错误显示在 WPF 的即时窗口中。为什么会发生这种情况,我该如何阻止它?

共有2个答案

易祯
2023-03-14

也有同样的问题。我做了一个准系统的WPF 4.7应用程序,在我的例子中,SizeToContent属性导致了它。

我有一个StatusBar,它的DataContext设置为RelativeSource AncestorType=Window,DataGrid在DockPanel中是它的同级。根窗口的SizeToContent设置为Width。

当项目被添加到数据网格时,您描述的绑定错误出现了。没有SizeToContent,它们就不会。在状态栏中使用ElementName=rootWindow而不是Ancestor恶作剧也修复了它。

童宏富
2023-03-14

这篇文章详细介绍了这个问题的解决方法。这个对我很有效:

将以下代码添加到全局样式中:

<Style.Triggers>
     <Trigger Property="HeadersVisibility" Value="Column">         
          <Setter Property="RowHeaderWidth" Value="0" />
     </Trigger>
</Style.Triggers>
 类似资料:
  • 初始值设置为true后,我与切换按钮的双向绑定将被分离。当我取消按钮时,它不再绑定。 我有两个切换按钮: 我希望绑定到的BackupViewModel(实例为BackupVM)中的我的属性: 当一个被切换时,我会显示一个特定的用户控件(视图)并隐藏另一个。我需要做的是告诉我的底层视图模型视图是隐藏的,这样我就可以停止刷新一些数据的计时器。加载IsChecked值后,由于某种原因绑定会被分离。以下是

  • 异常消息 上下文名称空间元素“component scan”及其解析器类[org.springframework.Context.annotation.ComponentScanBeanDefinitionParser]仅在JDK 1.5及更高版本上可用 Java版本

  • 我已经使用开发人员沙盒帐户构建了一个集成。我最近将我的应用程序升级为live,并将我的生产环境配置为使用新的集成id和secret以及live Docusign url。 但是,当我尝试在应用程序的帐户中创建oauth连接时,我的服务器会获取一个代码,将客户端重定向到Docusign以进行身份验证,但Docusign登录屏幕显示错误“没有向Docusign注册的重定向URI”。事实并非如此-我的开

  • //div class=“vp-btnc-text”xpath=“1”>cs-核心容量规划 Chropath提供的相对路径://div[contains(text(),'CS-Core Capacity Planning')] 我正在尝试的代码行是:driver.find_element_by_xpath('//div[contains(),'CS-Core Capacity Planning')

  • 问题内容: 并且部分地收到了这个答案,这似乎表明bind应该比闭包更快: 范围遍历意味着,当您要获取存在于另一个范围中的值(变量,对象)时,因此会增加额外的开销(代码执行起来会变慢)。 使用bind,您正在使用现有范围调用函数,这样就不会发生范围遍历。 两个jsperfs表示bind实际上比闭包慢得多。 这是对以上内容的评论 而且,我决定编写自己的jsperf 那么,为什么结合速度这么慢(铬含量超

  • 问题内容: 我有一个应该相等的整数(我通过输出验证了它)。但是在我的情况下,Java看不到这些变量具有相同的值。 我有以下代码: 并产生以下输出: 可能我必须添加定义如下的内容: 并且我们从环路构造采取: 因此,这两个变量都具有整数类型。 问题答案: 查看本文:装箱的值和相等性 使用或比较包装器类型(例如s,s或s)时,您 会将它们作为引用* 而不是值 进行比较 。 * 如果两个变量指向不同的对象