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

标签 c# xaml uwp xbind

我被我的 UWP 应用程序困住了,我尝试使用 {x:bind} 来遵循 MVVM 原则,而不是旧的 WPF 方式 {绑定(bind)名称}

但我坚持自己的想法/开发,我正在尝试在 ListView(或 GridView)中插入多个 DataTemplate。

我想做这样的事情作为例子:

            <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 不接受 ListView.ItemTemplate 中超过 1 个 DataTemplate。因为我真的希望我的 ListView 显示尽可能多的数据。

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

最佳答案

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

关于c# - 如何在 UWP ListView 中拥有多个数据模板 (x :bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53027181/

相关文章:

c# - 生成 Word 文档的缩略图

c# - Unity 的引用 XML 映射

c# - 在 WPF 中通过 XAML 代码加载外部图像?

c# - 在特定时间运行后台任务 - Windows 10 应用程序

windows - UWP 单个 UI 线程中的多个 View

c# - 传入请求的参数过多。服务器最多支持2100个参数

c# - 如何在使用 filehelpers 库导入 csv 文件时修复 ConvertException

wpf - 如何在wpf中动态更改Xaml页面标题?

c# - 如何确定gridview中被点击的项目

uwp - 分割 View 控制,当 Pane 打开时使内容变暗