C# 在样式中时GridViewColumn标题绑定失败
我有一个ListView,其中视图包含一个GridView和许多列定义。 详情如下: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
(这非常有效)
我需要隐藏用户首选项上的第一列,因此我创建了一个样式触发器来实现这一点。带有样式触发器的代码如下所示
使用此样式时,GridViewColumn标题属性的绑定不起作用。
但是CellTemplate的绑定可以正确执行并显示
VS中的输出窗口显示此错误
System.Windows.Data错误:2:找不到目标元素的治理FrameworkElement或FrameworkContentElement。BindingExpression:Path=ColumnHeader1;DataItem=null;目标元素是“GridViewColumn”(HashCode=565823);目标属性是“头”(类型)对象
有人能解释一下为什么会发生这种情况以及如何解决吗?
尝试过的事情:
- 使用RelativePath绑定确保DataContext有效。 (我怀疑这不起作用,因为我认为GridViewColumn定义 存在于此帖子的可视树之外)
- 为HeaderTemplate创建数据模板:相同的结果
- 根据本文使用FrameWorkElement作为代理
如果您遇到类似问题,希望这将非常有用。谢谢您的发帖。我也遇到了同样的问题,这为我解决了。
<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>