树视图控件中的绑定错误

本文关键字:绑定 错误 视图 控件 | 更新日期: 2023-09-27 18:30:47

我遇到了一个问题,如果您能为此提供任何建议,我将不胜感激。

错误信息:

System.Windows.Data 错误:4:找不到要绑定的源 参考资料 '相对来源 发现祖先, AncestorType='System.Windows.Controls.ItemsControl', 祖先级别='1''。绑定表达式:路径=水平内容对齐; 数据项=空;目标元素是"树视图项"(名称=");目标 属性为"水平内容对齐"(类型为"水平对齐")

我有一个树视图控件 (C# WPF .NET 4.0),并且通过使用 xaml 中的数据模板或手动将几个项目添加到此树视图中,并且都使用数据绑定。

收到新数据结构时,我需要清理树视图中的所有项目并treeview_Control.Items.Clear()重新生成新项目,从 GUI 的角度来看,它似乎工作正常,但是当我在 Visual Studio 上看到输出窗口时,它会显示几条错误消息如上所示。

我试图寻找解决方案并尝试了几种方法,但还没有运气。有人只是建议忽略此错误消息,但我只是真的想清除这一点。

如果你有任何想法,请帮助我。

树视图控件中的绑定错误

抱歉,这是一条评论,但我无法放入评论部分

您能否尝试在 TreeView 上添加一个ItemContainerStyle,看看它是否可以修复错误,我们在ListView中遇到了同样的问题,这是我们可以找到的唯一解决方法来消除错误。

<TreeView.ItemContainerStyle>
    <Style TargetType="{x:Type TreeViewItem}">
        <Setter Property="HorizontalContentAlignment" Value="Left"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
    </Style>
</TreeView.ItemContainerStyle>

我遇到了同样的问题。当我通过ViewModel从树视图中删除项目时,我收到了相同的无害错误消息。我已经在UserControl.Resources中定义了TreeViewItem的样式。在这种样式中,还有内容对齐的二传手。

<Style TargetType="TreeViewItem" x:Key="myTreeViewItemStyle"
             BasedOn="{StaticResource {x:Type TreeViewItem}}">
            <Setter Property="HorizontalContentAlignment"
                    Value="Left" />
            <Setter Property="VerticalContentAlignment" Value="Center"/>
    ...</Style>

对我有帮助的是添加TreeView中的ItemContainerStyle引用。

<TreeView ItemsSource="{Binding Items}" ItemContainerStyle="{StaticResource ResourceKey=myTreeViewItemStyle}">

我终于找到了一个适合我的解决方案。我首先向我的 App.xaml 添加了一个全局样式:

<Style TargetType="{x:Type TreeViewItem}">
    <Setter Property="HorizontalContentAlignment" Value="Left" />
    <Setter Property="VerticalContentAlignment" Value="Top" />
</Style>

我还必须将以下内容添加到我的树视图中:

<TreeView.ItemContainerStyle>
    <Style
        BasedOn="{StaticResource {x:Type TreeViewItem}}"
        TargetType="{x:Type TreeViewItem}">         
    </Style>
</TreeView.ItemContainerStyle>

出于某种原因,BasedOn 属性是我案例中缺失的部分。