我有一个带有ItemTemplateSelector的listview,可以根据模型加载我的自定义datatemplate。我想知道我是否可以在主DataTemplate中使用另一个TemplateSelector来加载另一个Datatemplate来更改基于相同模型的listview项DataTemplate。
<ListView
Padding="10"
Grid.Row="1"
ItemsSource="{Binding DbObjectList, Mode=TwoWay}"
IsItemClickEnabled="True"
ItemTemplateSelector="{StaticResource TemplateSelector}"
x:Name="Comps">
<DataTemplate x:Key="SetupDataTemplate" x:DataType="data:Setup">
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{x:Bind text}" HorizontalAlignment="Stretch" FontSize="16" />
<ContentControl Grid.Column="1" Content="{Binding}" ContentTemplateSelector="{StaticResource SetupTemplateSelector}" />
<TextBlock Grid.Column="2" Text="{x:Bind key}" HorizontalAlignment="Stretch" FontSize="16" />
</Grid>
</DataTemplate>
我尝试使用ContentControl / ContentPresenter加载我想要的DataTemplate,但Content属性始终为NULL。
<ContentControl Grid.Column="1" Content="{Binding}" ContentTemplateSelector="{StaticResource SetupTemplateSelector}" />
protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
{
.....
}
我需要将Listview项传递给SetupTemplateSelector以选择我的DataTemplate。 这是正确的方法吗? 有没有更好的解决方案来解决我的问题? 如果您需要更多,请直接询问!
由于