我正在尝试将不同的DataTemplates设置为ListBox,这取决于页面的ActualWidth。本质上,我想显示更多的数据来填补空白空间。
由于它自己定义的项也是关于使用什么DataTemplate的参数,我认为最好的方法是使用DataTemplateSelector。
既然我还没有找到向DataTemplateSelector添加DependencyProperty的方法,那么实现这一点的最佳方法是什么呢?
发布于 2015-06-24 21:04:36
使用DataTemplateSelector时,您可以访问将对其应用DataTemplate的数据项。在MSDN上的DataTemplateSelector页面上:
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。
https://stackoverflow.com/questions/31026126
复制相似问题