Как отобразить значение перечисления по умолчанию в ItemDisplayBinding в средстве выбора Xamarin.Forms - PullRequest
0 голосов
/ 31 октября 2018

Вид:

<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 голосов
/ 31 октября 2018

Вы можете просто использовать 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=.}".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...