数据模板uwp中的模板选择器

时间:2016-08-19 09:34:24

标签: c# listview mvvm uwp-xaml

我有一个带有ItemTemplateSelector的listview,可以根据模型加载我的自定义datatemplate。我想知道我是否可以在主DataTemplate中使用另一个TemplateSelector来加载另一个Datatemplate来更改基于相同模型的listview项DataTemplate。

主ListView

 <ListView
        Padding="10"
        Grid.Row="1"
        ItemsSource="{Binding DbObjectList, Mode=TwoWay}" 
        IsItemClickEnabled="True"
        ItemTemplateSelector="{StaticResource TemplateSelector}"
        x:Name="Comps">

Main DataTemplate

<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}" />

SetupTemplateSelector

protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
    {
      .....
    }

我需要将Listview项传递给SetupTemplateSelector以选择我的DataTemplate。 这是正确的方法吗? 有没有更好的解决方案来解决我的问题? 如果您需要更多,请直接询问!

由于

0 个答案:

没有答案