我正在使用XAML开发Windows应用商店应用(8.1)。在UI ContentControls中显示具有特定于数据的内容。为此,我成功使用了DataTemplateSelectors。
出现以下问题:初始ContentControl.Content属性为null,TemplateSelector正确返回我的个人NullTemplate。然后,将内容设置为要显示的数据对象,DataTemplateSelector成功返回正确的模板。
但是如果将Content属性设置回null,则不会发生任何事情。 UI不会调用DataTemplateSelector(即使两个***核心方法都被覆盖并实现)。
以下是ContentControl的配置
<ContentControl
Content="{Binding ButtonContent,ElementName=root}"
ContentTemplateSelector="{Binding ButtonContentTemplateSelector,ElementName=root}"/>
(两个Bindings都能正确提供数据。)
内容模板选择器
public class DefaultComboBoxItemTemplateSelector : DataTemplateSelector
{
public DataTemplate NullTemplate { get; set; }
public DataTemplate ObjectTemplate { get; set; }
public DefaultComboBoxItemTemplateSelector() : base() { }
protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
{
if (item == null) return NullTemplate;
else return ObjectTemplate;
}
protected override DataTemplate SelectTemplateCore(object item)
{
return SelectTemplateCore(item, null);
}
}
任何想法,为什么UI在将Content属性设置为null后不使用NullTemplate?
干杯 沃尔克