Как иметь несколько шаблонов данных в UWP ListView (x: bind) - PullRequest
0 голосов
/ 28 октября 2018

Я застрял в своем приложении UWP, я пытаюсь следовать принципу MVVM с {x: bind} вместо более старого пути WPF {имя привязки}

Но я застрял с моей идеей/ development, я пытаюсь вставить несколько DataTemplates в ListView (или GridView).

Я хочу сделать что-то вроде этого в качестве примера:

            <ListView.ItemTemplate>
                <DataTemplate x:DataType="localModels:Cars">
                    <StackPanel Orientation="Vertical">
                        <StackPanel Orientation="Vertical">
                            <TextBlock Text="Name:" />
                            <TextBox Text="{x:Bind Name}" />
                        </StackPanel>
                    </StackPanel>
                </DataTemplate>
                <!-- Here is the second DataTemplate which isn't allowed in UWP -->
               <DataTemplate x:DataType="localModels:Bikes">
                    <StackPanel Orientation="Vertical">
                        <StackPanel Orientation="Vertical">
                            <TextBlock Text="Name:" />
                            <TextBox Text="{x:Bind Name}" />
                        </StackPanel>
                    </StackPanel>
                </DataTemplate>
            </ListView.ItemTemplate>

Как вы можете видеть, у меня есть2 DataTemplate: автомобили и мотоциклы внутри ListView.ItemTemplate.

Не уверен, что это актуально: Cars.cs наследуется от родителя Bike.cs.

Я не совсем понимаю, почему UWP не принимает более 1 DataTemplate в ListView.ItemTemplate.,Потому что я действительно хочу, чтобы мой ListView отображал как можно больше данных.

Как решить эту проблему в UWP и {x: bind}?

1 Ответ

0 голосов
/ 28 октября 2018

Вы можете использовать DataTemplateSelector , чтобы определить, какую табличку данных следует выбирать в зависимости от типа данных. Здесь вы можете найти пример.

...