C# 如何在UWP ListView中拥有多个数据模板(x:bind)

C# 如何在UWP ListView中拥有多个数据模板(x:bind),c#,xaml,uwp,xbind,C#,Xaml,Uwp,Xbind,我被我的UWP应用程序卡住了,我试图用{x:bind}来遵循MVVM原则,而不是旧的WPF方式{binding name} 但我的想法/开发一直在坚持,我正在尝试在ListView(或GridView)中插入多个数据模板 我想这样做作为一个例子: <ListView.ItemTemplate> <DataTemplate x:DataType="localModels:Cars">

我被我的UWP应用程序卡住了,我试图用{x:bind}来遵循MVVM原则,而不是旧的WPF方式{binding name}

但我的想法/开发一直在坚持,我正在尝试在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>

如您所见,我在ListView.ItemTemplate中有两个数据模板:汽车和自行车

不确定这是否相关:Cars.cs继承自Bike.cs父项

我真的不明白为什么UWP在ListView.ItemTemplate中不接受超过1个DataTemplate。因为我真的希望我的ListView显示尽可能多的数据


在UWP和{x:bind}中,解决这个问题的方法是什么?

您可以使用确定应根据数据类型选择哪个数据模板。你可以找到一个例子。

谢谢!你认为我应该把DataTemplate类放在哪里?在视图中还是其他地方?您是指DataTemplate资源?如果你想在其他地方重复使用它们,那么你可以将它们放在App.Resources中,否则我会将它们放在最近的使用位置。