我在 Window Phone 8.1 应用程序中使用 DataTemplateSelector,并希望为我的 ContentControl 的父 DataContext 添加特定的 DataTemplate。但在 SelectTemplateCore 中 container.Parent 始终为空。你能帮我找到想要的解决方案吗?
public class EmptyDataTemplateSelector : DataTemplateSelector
{
public DataTemplate EmptyDataTemplate { get; set; }
public DataTemplate BaseDataTemplate { get; set; }
public DataTemplate ExportedDataTemplate { get; set; }
protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
{
if (item == null || (item is string && string.IsNullOrWhiteSpace((string)item)))
{
var parent = VisualTreeHelper.GetParent(container); //always null
if ((parent as Grid).DataContext is Trip && ((parent as Grid).DataContext as Trip).IsExported)
return ExportedDataTemplate;
return EmptyDataTemplate;
}
return BaseDataTemplate;
}
EmptyDataTemplateSelector 用于网格内的简单 ContentControl。