Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataTempleSelector未调用SelectTemplate_C#_Wpf_Datatemplate_Datatemplateselector - Fatal编程技术网

C# DataTempleSelector未调用SelectTemplate

C# DataTempleSelector未调用SelectTemplate,c#,wpf,datatemplate,datatemplateselector,C#,Wpf,Datatemplate,Datatemplateselector,我一直在尝试为我的WPF列表框提供一个简单的DataTempleSelector,但我没有任何运气。我在SelectTemplate上设置了一个断点,但它永远不会被调用。知道我做错了什么吗 C#: XAML: 您已将列表框控件中项目的UI硬编码为列表框项目 如果要使用项目模板,则必须使用列表框的项目资源属性,然后将数据模板应用于每个项目 i、 e public class ListBoxTemplateSelector : DataTemplateSelector { public

我一直在尝试为我的WPF列表框提供一个简单的DataTempleSelector,但我没有任何运气。我在SelectTemplate上设置了一个断点,但它永远不会被调用。知道我做错了什么吗

C#:

XAML:


您已将
列表框
控件中项目的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>