我正在尝试根据Pages ActualWidth将不同的DataTemplates设置为ListBox。本质上我想显示更多数据来填补空白区域。
由于它自定义的项也是一个关于DataTemplate使用的参数我想我最好的方法是使用DataTemplateSelector。
实现这一目标的最佳方法是什么,因为我找不到将DependencyProperty添加到DataTemplateSelector的方法。
答案 0 :(得分:0)
使用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
。