Window Phone 8.1 アプリケーションで DataTemplateSelector を使用しており、ContentControl の親 DataContext に特定の DataTemplate を追加したいと考えています。ただし、container.Parent は SelectTemplateCore では常に null です。希望する解決策を教えていただけますか?
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 に使用されています。