Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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# 列表框ItemTemplateSelector不工作_C#_Wpf - Fatal编程技术网

C# 列表框ItemTemplateSelector不工作

C# 列表框ItemTemplateSelector不工作,c#,wpf,C#,Wpf,我有一个带有ItemTemplateSelector的列表框。 我的TemplateSelector正在选择正确的模板,但没有在UI上显示任何内容 如果我对ItemsControl执行相同的过程,那么一切都会很好地工作。但是,由于我想要selctedItem属性,所以我想要使用ListBox 我的XAML代码:- <ListBox x:Name="CanvasItemsControl" ItemTemplateSelector="{StaticResource templateSelect

我有一个带有ItemTemplateSelector的列表框。 我的TemplateSelector正在选择正确的模板,但没有在UI上显示任何内容

如果我对ItemsControl执行相同的过程,那么一切都会很好地工作。但是,由于我想要selctedItem属性,所以我想要使用ListBox

我的XAML代码:-

<ListBox x:Name="CanvasItemsControl" ItemTemplateSelector="{StaticResource templateSelector}" ItemsSource="{Binding ItemListViewModel.CanvasItems}">
   <ListBox.ItemsPanel>
      <ItemsPanelTemplate>
           <Canvas/>
      </ItemsPanelTemplate>
</ListBox>

如果ItemTemplateSelector的实现在我的代码中不正确,请给出建议。

首先在资源中定义模板,然后在代码文件中定义DataTemplateSelector

public class templateSelector : DataTemplateSelector
{
    private DataTemplate _Template1;
    public DataTemplate Template1
    {
        get { return _Template1; }
        set { _Template1 = value; }
    }


    private DataTemplate _Template2;
    public DataTemplate Template2
    {
        get { return _Template2; }
        set { _Template2 = value; }
    }


    public override DataTemplate SelectTemplate(object item, DependencyObject container)
    {
        YourClass obj = (YourClass)item;

        if (obj.Type == "SomeType")
        {
            return Template1;
        }
        else
        {
            return Template2;
        }
    }

}

<ListView.ItemTemplateSelector>
    <local:FieldRangeTemplateSelector 
        Template1="{StaticResource YouyTemplate1}"
        Template2="{StaticResource YoutTemplate2}" />
</ListView.ItemTemplateSelector>

请建议我的代码中ItemTemplateSelector的实现是否不正确。它在哪里?