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

GridViewColumn可见性属性的绑定失败

罗允晨
2023-03-14
    <ListView Grid.Row="1" Margin="10" Name="lvRegistersConfig" ItemsSource="{Binding registers}">
        <ListView.Resources>
            <local:BoolToVisibility x:Key="BTVConverter"/>
        </ListView.Resources>
        <ListView.View>
            <GridView>
                <local:GridViewColumnExt Header="Register Name" Width="100" Visibility="{Binding Vis, Converter={StaticResource BTVConverter}}" >
                    <local:GridViewColumnExt.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Name}" Visibility="{Binding Vis, Converter={StaticResource BTVConverter}}"/>
                        </DataTemplate>
                    </local:GridViewColumnExt.CellTemplate>
                </local:GridViewColumnExt>
            </GridView>
        </ListView.View>
    </ListView>

GridViewColumnExt是从GridViewColumn继承并添加可见性属性的类。

您可能会看到,我的ListView的ItemsSource被设置为寄存器ObservableCollection。Register类有一个名为vis的bool类型的属性。对于TextBox来说,这一切都很好,但是从GridViewColumnExt don来看,我认为我无法到达集合并绑定到特定的对象。

我不确定GridViewColumn的DataContext是什么,我发现我无法设置它。我需要一个提示,我的GridViewColumn如何从registers ObservableCollection中的Register对象中看到Vis属性?

共有1个答案

楚奇逸
2023-03-14

我不确定GridViewColumnext控件是如何工作的,但在XAML中,DataContext似乎不是Registers集合中的单个项,而是声明Registers集合的DataContext集合。因此,您可能无法使用register.vis属性控制列的可见性。

如果希望在单元格模板中添加更多内容,可以将textblock包装在grid中,并将grid.visibility属性绑定到register.vis属性。

这有道理吗?

 类似资料:
  • 我试图将子类属性绑定到GridViewColumn。我有一个母类M1和三个不同的子类S1、S2和S3。GridViewColumn由类M1的对象填充。我希望将S2的一个属性绑定到这个GridViewColumn的头,而M1中没有实现这个属性。 有人能给我解释一下怎么做吗?

  • 最好的办法是什么?根据显示的数据,我希望绑定到MyText1或MyText2。我怎么做“开关”?

  • 我想解决的一般问题是,一个复选框只有一个datatemplate,然后我可以将它用于listview中的许多不同列(使用gridview)。在我所见过的所有示例中,每个绑定都创建了一个分离模板,这对我来说似乎有些过头了。 我一直试图通过创建gridviewcolumn将设置的附加属性来实现这一点。然后,我可以简单地为绑定到附加属性的复选框设置一个datatemplate。 我遇到的问题实际上是将复

  • 如何通过绑定隐藏 WPF 中的列? 这就是我所做的: 这是我得到的(除了仍然可见的列): System. Windows. Data错误:2:找不到目标元素的管理Frameworks Element或Frameworks ContentElement。绑定表达式:路径=My列可见性;数据项=空;目标元素是“DataG的文本列”(HashCode=1460142);目标属性是“可见性”(类型“可见性

  • 问题内容: 我在div中有一个HTML 5视频。然后,我有一个自定义播放按钮-效果很好。 我已将视频的可见性设置为在加载时隐藏,并且在单击播放按钮时可见,那么如何在再次单击播放按钮时将其恢复为隐藏状态? 我基本上只是想在可见和隐藏的两种状态之间切换,除非我不能使用切换,因为那是show的隐藏div。我需要在那里,只是隐藏起来,所以它保持正确的高度。 问题答案: 使用jQuery:

  • 在我的XAML中: 我的gridviewcolumn的可见性现在应该取决于我的集合项的“isVisible”的值。那件事可能吗?