如何在Xamarin的Picker中的ItemDisplayBinding中显示默认枚举值.表格



视图:

<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可以直接转换为列表,而无需经过模型。

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

在你问我怎么知道的评论中,这实际上是我的一个很好的问题。我想我早在WPF就学会了。但很难从文档中挖掘出来,我在这里发现了一个小通知:https://learn.microsoft.com/en-us/dotnet/api/system.windows.data.binding.path?redirectedfrom=MSDN&view=网络框架-4.7.2#系统窗口数据绑定路径

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

最新更新