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

未使用的列表框项,如果内容不为 null,则会导致绑定错误

司寇羽
2023-03-14

我注意到了ListBoxItem的这个奇怪的事情,即使你实际上没有对你创建的ListBoxItem做任何事情,如果它的内容不为空,它也会导致2个绑定错误。请注意,我没有创建任何绑定,我已经发布了重现这些错误所需的所有代码。

ListBoxItem li = new ListBoxItem();

或者

ListBox lb = new ListBox();
ListBoxItem li = new ListBoxItem();
li.Content = "Something";
lb.Items.Add(li);

不会导致任何错误,但

ListBoxItem li = new ListBoxItem();
li.Content = "Something";

这方面的结果:

系统.Windows。数据错误:4:无法找到引用“RelativeSource FindAncestor,AncestorType=”System.Windows.Controls的绑定源。ItemsControl',AncestorLevel=“1”。BindingExpression:路径=水平内容对齐;数据项=空;目标元素是“ListBoxItem”(名称=“”);目标属性为“HorizontalContentAlignment”

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

谁能说出是什么原因导致这种行为?

共有1个答案

白才艺
2023-03-14

这是因为ListBoxItem的默认样式包含一个绑定with

像这样:

<Style TargetType="ListBoxItem">
    <Setter Property="HorizontalAlignment" Value="{Binding HorizontalContentAlignment RelativeSource={RelativeSource AncestorType=ItemsControl}}"/>
</Style>

您正在创建一个<code>ListBoxItem</code>,它不包含在<code>ItemsControl</code>中,因此<code>RelativeSource</ccode><code>绑定</code>无法找到该类型的祖先。

 类似资料:
  • 我是WPF/XAML的新手。如果绑定到XAML中错误的数据类型,我希望得到一条错误消息。XAML似乎希望所有绑定都通过字符串进行,但是如果错误地使用int或double则不会出现错误消息。 我在这里找到了以下XAML代码: 我发现绑定可以在int属性上工作,但不能在公共int字段上工作。下面是我创建的一个Point类来测试它: 如果绑定到int属性X或string属性Xstr,它可以正常工作。如果

  • 到目前为止,我得到了indexOutOfBoundsException错误

  • 问题内容: 我有一个表,其中有一个带有默认值的列: 有一个存储过程插入到: 您可以看到,我必须有条件地分支以便我的插入使用默认值(如果为null)。仅一列就可以了,但是请考虑是否有更多列-语法可能很笨拙。 我是否可以使用一种语法来指定插入值应该返回默认值(如果为null)?我尝试了以下操作,但可以理解的是语法错误: 问题答案:

  • 我有一个名为LibraryConfig的带有注释的配置属性类。它使用内部类作为属性/配置结构的类型定义。当类是内部类而不是独立类时,我得到“元素[…]“未绑定”错误/异常。为什么会这样?我如何修复它? application.yml 库配置。Java语言

  • 因此,使用Apache POI的Excel中出现不可读内容错误的主题似乎很常见。然而,我感到惊讶的是,我仍然找不到我的问题的例子,特别是因为我试图做的事情似乎非常简单。这让我相信,随着我对一些java对象,特别是File和FileInputStream的理解,我的脑海中可能会浮现出一些东西。我通过大量的尝试和错误发现了如何使其工作,但我的问题是为什么一个工作,为什么另一个不工作,我很想了解根本问题

  • 我试图运行一个依赖于某些python3库的PySpark作业。我知道我可以在Spark Cluster上安装这些库,但是因为我正在为多个作业重用集群,所以我更愿意捆绑所有依赖项,并通过指令将它们传递给每个作业。 为此,我使用: 它有效地压缩了需要在根级别使用的包中的所有代码。 在my中,我可以导入依赖项 并将.zip添加到我的Spark上下文中 到目前为止还不错。 但出于某种原因,这将在星火星团的