我和ItemTemplateSelector有一个ListBox。我的TemplateSelector选择了正确的模板,但UI上没有显示任何内容。
如果我用ItemsControl执行同样的过程,事情会运行得很好。但是,因为我需要selctedItem属性,所以我想使用ListBox。
我的XAML代码:-
<ListBox x:Name="CanvasItemsControl" ItemTemplateSelector="{StaticResource templateSelector}" ItemsSource="{Binding ItemListViewModel.CanvasItems}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<Canvas/>
</ItemsPanelTemplate>
</ListBox>如果我的代码中ItemTemplateSelector的实现不正确,请提出建议。
发布于 2014-04-15 14:35:00
首先在资源中定义模板,然后在代码文件中定义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>https://stackoverflow.com/questions/23076074
复制相似问题