C# DataTempleSelector未调用SelectTemplate
我一直在尝试为我的WPF列表框提供一个简单的DataTempleSelector,但我没有任何运气。我在SelectTemplate上设置了一个断点,但它永远不会被调用。知道我做错了什么吗 C#: XAML:C# DataTempleSelector未调用SelectTemplate,c#,wpf,datatemplate,datatemplateselector,C#,Wpf,Datatemplate,Datatemplateselector,我一直在尝试为我的WPF列表框提供一个简单的DataTempleSelector,但我没有任何运气。我在SelectTemplate上设置了一个断点,但它永远不会被调用。知道我做错了什么吗 C#: XAML: 您已将列表框控件中项目的UI硬编码为列表框项目 如果要使用项目模板,则必须使用列表框的项目资源属性,然后将数据模板应用于每个项目 i、 e public class ListBoxTemplateSelector : DataTemplateSelector { public
您已将
列表框
控件中项目的UI硬编码为列表框项目
如果要使用项目模板
,则必须使用列表框
的项目资源
属性,然后将数据模板应用于每个项目
i、 e
public class ListBoxTemplateSelector : DataTemplateSelector
{
public DataTemplate DefaultnDataTemplate { get; set; }
public DataTemplate OverrideDataTemplate { get; set; }
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
string listboxItem = item as string;
if (listboxItem == "Apples" || listboxItem == "Oranges")
{
return OverrideDataTemplate;
}
return DefaultnDataTemplate;
}
}
<Window.Resources>
<DataTemplate x:Key="DefaultDataTemplate">
<Grid Margin="4" MinHeight="25" Background="Blue"/>
</DataTemplate>
<DataTemplate x:Key="OverrideDataTemplate">
<Grid Margin="4" MinHeight="25" Background="Black"/>
</DataTemplate>
<converters:ListBoxTemplateSelector
x:Key="templateSelector"
DefaultnDataTemplate="{StaticResource DefaultDataTemplate}"
OverrideDataTemplate="{StaticResource OverrideDataTemplate}"/>
</Window.Resources>
<Grid>
<ListBox ItemTemplateSelector="{StaticResource templateSelector}">
<ListBox.Items>
<ListBoxItem Content="Apple"/>
<ListBoxItem Content="Banannas"/>
<ListBoxItem Content="Oranges"/>
<ListBoxItem Content="Lemons"/>
</ListBox.Items>
</ListBox>
</Grid>
<ListBox ItemTemplateSelector="{StaticResource templateSelector}" ItemsSource="{Binding Fruits}">
</ListBox>