首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataTemplateSelector获取父ActualWidth

DataTemplateSelector获取父ActualWidth
EN

Stack Overflow用户
提问于 2015-06-24 20:08:26
回答 1查看 190关注 0票数 0

我正在尝试将不同的DataTemplates设置为ListBox,这取决于页面的ActualWidth。本质上,我想显示更多的数据来填补空白空间。

由于它自己定义的项也是关于使用什么DataTemplate的参数,我认为最好的方法是使用DataTemplateSelector。

既然我还没有找到向DataTemplateSelector添加DependencyProperty的方法,那么实现这一点的最佳方法是什么呢?

EN

回答 1

Stack Overflow用户

发布于 2015-06-24 21:04:36

使用DataTemplateSelector时,您可以访问将对其应用DataTemplate的数据项。在MSDN上的DataTemplateSelector页面上:

代码语言:javascript
复制
public class TaskListDataTemplateSelector : DataTemplateSelector
{
    public override DataTemplate
        SelectTemplate(object item, DependencyObject container)
    {
        FrameworkElement element = container as FrameworkElement;

        if (element != null && item != null && item is Task)
        {
            Task taskitem = item as Task;

            if (taskitem.Priority == 1)
                return
                    element.FindResource("importantTaskTemplate") as DataTemplate;
            else 
                return
                    element.FindResource("myTaskTemplate") as DataTemplate;
        }

        return null;
    }
}

请注意,在上面的示例中,object item输入参数是如何转换为项目的实际类型的。因此,您可以向数据项类添加一个属性来保存大小信息,您可以使用该信息来确定要应用的DataTemplate

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

https://stackoverflow.com/questions/31026126

复制
相关文章

相似问题

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