绑定GridViewColumn可视性属性失败
本文关键字:失败 属性 可视性 GridViewColumn 绑定 | 更新日期: 2023-09-27 18:17:12
<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的类,并添加了Visibility属性。
我的ListView的ItemsSource,你可以看到,被设置为注册的ObservableCollection。注册类有一个名为Vis的bool类型属性。这一切都适用于文本框,但从GridViewColumnExt不,我认为我无法达到集合并绑定到特定对象。
我不确定GridViewColumn的DataContext是什么,我看到我无法设置它。我需要一个提示,我的GridViewColumn怎么能看到Vis属性从注册对象的注册ObservableCollection ?
我不确定GridViewColumnExt
控件是如何工作的,但看起来像您的XAML, DataContext
不会是registers
集合中的单个项目,而是与registers
集合声明的DataContext
相同。所以,你可能无法用Register.Vis
属性来控制列的可见性。
如果你想在单元格模板中添加更多内容,你可以将TextBlock
包装在Grid
中,并将Grid.Visibility
属性绑定到Register.Vis
属性。
明白了吗?