列表框ItemTemplate选择器不选择模板

我试图在我在不同文件上创建的网格中的列表框上使用ItemTemplateSelector,以便以后由MainWindow调用。

这是我的DataTemplateSelector代码

public class TemplateSelector : DataTemplateSelector { public override DataTemplate SelectTemplate(object item, DependencyObject container) { FrameworkElement element = container as FrameworkElement; if (element != null && item != null && item is myClass) { myClass agg = item as myClass; if(agg.myType == a) { return element.FindResource("greenItemTemplate") as DataTemplate; } else if (agg.myType == b) { return element.FindResource("yellowItemTemplate") as DataTemplate; } else if (agg.myType == c) { return element.FindResource("redItemTemplate") as DataTemplate; } } return null; } } 

这是我的xaml

                                 

但是,虽然绑定工作正常(列表中出现非格式化对象的列表),但ItemTemplateSelector不会调用TemplateSelector方法。 我在方法的开头放了一个断点,它从未调用过。

有谁知道可能是什么问题?

@Rachel是对的。 您的DataTemplateSelector仅在加载时调用一次,而不是INPC更改。

您可以为要求做的是使用ListBoxItemStyleDataTrigger切换所使用的Template

就像是:

                          

和用法: