如何在Xamarin.Forms选取器的ItemDisplayBinding中显示默认枚举值

时间:2018-10-31 07:37:28

标签: c# xaml xamarin.forms

查看:

<Picker ItemsSource="{Binding ECCLevels}" 
        ItemDisplayBinding="{Binding QRCodeGenerator.ECCLevel}"
        HeightRequest="44"/>

ViewModel:

public ObservableCollection<QRCodeGenerator.ECCLevel> ECCLevels { get; set; } = new ObservableCollection<QRCodeGenerator.ECCLevel>();

ECCLevels = new ObservableCollection<QRCodeGenerator.ECCLevel>(Enum.GetValues(typeof(QRCodeGenerator.ECCLevel)).OfType<QRCodeGenerator.ECCLevel>().ToList());

我简化了上面的代码。在第二行代码之后,ObservableCollection被数据填充。但是问题是我不知道要在选择器的ItemDisplayBinding属性中放什么,因为在那里Enum无需通过模型就可以直接转换为列表。

1 个答案:

答案 0 :(得分:1)

您可以只使用ItemDisplayBinding="{Binding .}",点号表示您基本上是指this。因此,通过这种方式,您只需引用对象本身,而不引用其他任何属性。

在评论中,您问我如何知道,这实际上是我很好的问题。我想我早在WPF时就开始使用它。但是很难从文档中进行挖掘,我在这里发现了一点注意:https://docs.microsoft.com/en-us/dotnet/api/system.windows.data.binding.path?redirectedfrom=MSDN&view=netframework-4.7.2#System_Windows_Data_Binding_Path

  

(可选)可以使用句点(。)路径绑定到当前源。例如,Text="{Binding}"等效于Text="{Binding Path=.}"