绑定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 ?

绑定GridViewColumn可视性属性失败

我不确定GridViewColumnExt控件是如何工作的,但看起来像您的XAML, DataContext不会是registers集合中的单个项目,而是与registers集合声明的DataContext相同。所以,你可能无法用Register.Vis属性来控制列的可见性。

如果你想在单元格模板中添加更多内容,你可以将TextBlock包装在Grid中,并将Grid.Visibility属性绑定到Register.Vis属性。

明白了吗?

相关文章: