首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用相对绑定Mode=FindAncestor

如何使用相对绑定Mode=FindAncestor
EN

Stack Overflow用户
提问于 2011-01-27 14:04:03
回答 1查看 2.2K关注 0票数 1

我有一个ListView控件,它有3列: Name、Surname和address。我希望所有3列都有相同的宽度。我想出的唯一方法是将每个列的宽度绑定到祖先的ActualWidth,并使用转换器将该宽度除以3,如下所示:

代码语言:javascript
复制
<GroupBox>
    <ListView Name="People" ItemsSource="{Binding peopleList}">
        <ListView.View>
                <GridView >
                        <GridViewColumn Header="name" DisplayMemberBinding="{Binding Name}">
                                <GridViewColumn.Width>
                                        <Binding Path="ActualWidth" Source="{RelativeSource Mode=FindAncestor, AncestorType={x:Type GroupBox}}" Converter ="{StaticResource ListViewConverter}"/>
                                    </GridViewColumn.Width>
            <GridViewColumn Header="surname" ...>
                ...
            </GridViewColumn>
            <GridViewColumn Header="address" ...>
                ...
            </GridViewColumn>
                            </GridViewColumn>
                    </GridView>
            </ListView.View>
   </ListView>
</GroupBox>

转换类是:

代码语言:javascript
复制
class ListViewConverter: IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        double state = (double)value;
        return state / 3;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return null;
    }
}

但这不管用。我认为GroupBox可能不是GridViewColumn.Width的祖先。也许我全搞错了,有一种更简单的方法可以做到吗?

EN

回答 1

Stack Overflow用户

发布于 2011-01-27 14:16:30

您是对的,GroupBox不是祖先-这是因为GridViewColumn没有添加到可视化树中,因此依赖于可视化树导航的绑定将不起作用。您可以将列绑定到静态资源:

要实现你想要的东西,需要相当多的自定义代码。请参阅以下MSDN论坛帖子:

http://social.msdn.microsoft.com/forums/en-US/wpf/thread/83bd7ab9-3407-461f-a0bc-69e04870075c

这里的代码提供了更多用于指定列大小的选项:

http://www.codeproject.com/KB/grid/ListView_layout_manager.aspx

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4813237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档