Xamarin Forms - 获取自定义控件运行时(使用 valueconverter?)

Xamarin Forms - Get custom control runtime (with valueconverter?)

我有一个 Xamarin 表单应用程序。它有一个页面。该页面有一个列表视图。列表视图绑定到源列表。我想要的是根据列表中每个项目的特定 属性 来决定使用什么自定义控件。我怎样才能做到这一点?

还要求自定义控件绑定到列表中的值。

我尝试了以下方法:

                <ContentView Content="{Binding IsPriority, Converter={StaticResource RoadIndicatorBackgroundValueConverter}}" ControlText="{Binding TowingOrder.Location.RoadIndicator}"></ContentView>

这不行,因为我无法绑定特定自定义控件的 ControlText。

上图显示了问题。 A1、A50 和蓝色图标都是自定义控件,不是图像。还有更多这些自定义控件。我不能只制作 10 个正确的数据模板并复制粘贴所有内容吗?那将是太多的重复代码。我不能只在数据模板中使用基础对象,然后将 属性 与转换器绑定并使用 switch/case 来决定将哪个自定义控件设为 return 吗?

在运行时绑定整个布局的内容不是一个好的设计。

从屏幕截图来看,似乎每个单元格都相似。因此您可以创建一个基本自定义控件并预先定义所有控件并在代码后面绑定 属性IsVisible。然后设置它的值来控制应该显示哪个元素。

如果单元格之间存在很多挖掘差异,使用DataTemplateSelector更好。