列表框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
更改。
您可以为要求做的是使用ListBoxItemStyle
和DataTrigger
切换所使用的Template
就像是:
和用法: