Xamarin.forms Xamarin表单-获取自定义控件运行时(使用valueconverter?)

Xamarin.forms Xamarin表单-获取自定义控件运行时(使用valueconverter?),xamarin.forms,custom-controls,ivalueconverter,Xamarin.forms,Custom Controls,Ivalueconverter,我有一份Xamarin表格申请表。它有一页。该页面有一个listview。ListView绑定到一个sourcelist。我想要的是根据列表中每个项所具有的特定属性来决定要使用的自定义控件。我怎样才能做到这一点 自定义控件还需要绑定到列表中的值 我尝试了以下方法: <ContentView Content="{Binding IsPriority, Converter={StaticResource RoadIndicatorBackgroundValueC

我有一份Xamarin表格申请表。它有一页。该页面有一个listview。ListView绑定到一个sourcelist。我想要的是根据列表中每个项所具有的特定属性来决定要使用的自定义控件。我怎样才能做到这一点

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

我尝试了以下方法:

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

这不起作用,因为我无法绑定特定自定义控件的ControlText


上图显示了问题所在。A1、A50和蓝色图标都是自定义控件,而不是图像。还有一些自定义控件。我不能只制作10个数据模板,然后复制粘贴所有内容?这将是如此多的重复代码。难道我不能在datatemplate中使用一个基本对象,用一个转换器绑定一个属性,并使用开关/大小写来决定返回哪个自定义控件吗

在运行时绑定整个版面的内容不是一个好的设计

从屏幕截图上看,似乎每个单元格都是相似的。因此,您可以创建一个基本自定义控件,提前定义所有控件,并在代码隐藏中绑定属性
IsVisible
。然后设置其值以控制应显示的元素


如果单元格之间存在许多差异,则最好使用DataTemplateSelector

您可以使用DataTemplateSelector。谢谢你的回复。当我有一个大的datatemplate并且只有一个区别时,我认为这个解决方案看起来不是很干净。有没有其他方法可以减少代码重复?很抱歉,我已经创建了两篇帖子,我无法理解。你可以提供你想要达到的效果(比如屏幕截图)。我添加了一个屏幕截图。你只需要绑定颜色和文本。单元格是相似的。