C# 在样式中时GridViewColumn标题绑定失败

C# 在样式中时GridViewColumn标题绑定失败,c#,wpf,gridview,binding,visual-studio-2012,C#,Wpf,Gridview,Binding,Visual Studio 2012,我有一个ListView,其中视图包含一个GridView和许多列定义。 详情如下: (这非常有效) 我需要隐藏用户首选项上的第一列,因此我创建了一个样式触发器来实现这一点。带有样式触发器的代码如下所示 使用此样式时,GridViewColumn标题属性的绑定不起作用。 但是CellTemplate的绑定可以正确执行并显示 VS中的输出窗口显示此错误 System.Windows.Data错误:2:找不到目标元素的治理FrameworkElement或FrameworkContentEl

我有一个ListView,其中视图包含一个GridView和许多列定义。 详情如下:


(这非常有效)

我需要隐藏用户首选项上的第一列,因此我创建了一个样式触发器来实现这一点。带有样式触发器的代码如下所示


使用此样式时,GridViewColumn标题属性的绑定不起作用。

但是CellTemplate的绑定可以正确执行并显示

VS中的输出窗口显示此错误

System.Windows.Data错误:2:找不到目标元素的治理FrameworkElement或FrameworkContentElement。BindingExpression:Path=ColumnHeader1;DataItem=null;目标元素是“GridViewColumn”(HashCode=565823);目标属性是“头”(类型)对象

有人能解释一下为什么会发生这种情况以及如何解决吗?

尝试过的事情:

  • 使用RelativePath绑定确保DataContext有效。 (我怀疑这不起作用,因为我认为GridViewColumn定义 存在于此帖子的可视树之外)

  • 为HeaderTemplate创建数据模板:相同的结果

  • 根据本文使用FrameWorkElement作为代理


如果其他人有这样的问题,我已经找到了解决办法

GridViewColumn标题属性必须设置并绑定在该项的XAML标记中,如下所示。



如果您遇到类似问题,希望这将非常有用。

谢谢您的发帖。我也遇到了同样的问题,这为我解决了。
<Setter Property="View">
<Setter.Value>
    <GridView x:Name="WithOutColumn1" AllowsColumnReorder="False">
        <GridViewColumn CellTemplate="{StaticResource Column2Template}">
            <GridViewColumnHeader Content="{Binding ColumnHeader2}" />
        </GridViewColumn>
        <GridViewColumn CellTemplate="{StaticResource Column3Template}">
            <GridViewColumnHeader Content="{Binding ColumnHeader3}" />
        </GridViewColumn>
        <GridViewColumn  CellTemplate="{StaticResource Column4Template}">
            <GridViewColumnHeader Content="{Binding ColumnHeader3}" />
        </GridViewColumn>
        <GridViewColumn  CellTemplate="{StaticResource Column5Template}">
            <GridViewColumnHeader Content="{Binding ColumnHeader3}" />
        </GridViewColumn>
    </GridView>
</Setter.Value>