Nie, właściwość Klucz jest dostępna w selektorze Xamarin. Ale można go zaimplementować przy użyciu klasy Dictionary i SelectedIndex klasy selektora xamarin.
wdrożyć go za pomocą kodu następujący fragment:
class PickerDemoPage : ContentPage
{
// Dictionary to get Color from color name.
Dictionary<string, Color> nameToColor = new Dictionary<string, Color>
{
{ "Aqua", Color.Aqua }, { "Black", Color.Black },
{ "Blue", Color.Blue }, { "Fuschia", Color.Fuschia },
{ "Gray", Color.Gray }, { "Green", Color.Green },
{ "Lime", Color.Lime }, { "Maroon", Color.Maroon },
{ "Navy", Color.Navy }, { "Olive", Color.Olive },
{ "Purple", Color.Purple }, { "Red", Color.Red },
{ "Silver", Color.Silver }, { "Teal", Color.Teal },
{ "White", Color.White }, { "Yellow", Color.Yellow }
};
public PickerDemoPage()
{
Label header = new Label
{
Text = "Picker",
FontSize = Device.GetNamedSize (NamedSize.Large, typeof(Label)),
HorizontalOptions = LayoutOptions.Center
};
Picker picker = new Picker
{
Title = "Color",
VerticalOptions = LayoutOptions.CenterAndExpand
};
foreach (string colorName in nameToColor.Keys)
{
picker.Items.Add(colorName);
}
// Create BoxView for displaying picked Color
BoxView boxView = new BoxView
{
WidthRequest = 150,
HeightRequest = 150,
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.CenterAndExpand
};
picker.SelectedIndexChanged += (sender, args) =>
{
if (picker.SelectedIndex == -1)
{
boxView.Color = Color.Default;
}
else
{
string colorName = picker.Items[picker.SelectedIndex];
boxView.Color = nameToColor[colorName];
}
};
// Accomodate iPhone status bar.
this.Padding = new Thickness(10, Device.OnPlatform(20, 0, 0), 10, 5);
// Build the page.
this.Content = new StackLayout
{
Children =
{
header,
picker,
boxView
}
};
}
}
Źródło: https://developer.xamarin.com/api/type/Xamarin.Forms.Picker/
Doskonała próbka kodu. Wciąż staram się w pełni zrozumieć, jak to wszystko działa razem, ale najprostszy przykład, jaki mogłem znaleźć. Byłem w stanie uzyskać dostęp do klucza i wartości SelectedItem w kodzie za bardzo łatwo dla każdego, kto mógłby chcieć to zrobić. – Tim
Dodaj tę właściwość do selektora w Xaml, a następnie nazwij dowolną metodę. Wywołaj tę metodę w publicznej pustce xaml.cs OnPickerChangedEvent (obiekt nadawca, EventArgs e) { var picker = (Picker) nadawca; var myIndex = picker.SelectedIndex; var myData = this.MyViewModel.SelectedItem.Key; } –
Tim