Hayır, Anahtar özellik xamarin seçici'de kullanılabilir. Ancak, xamarin seçici sınıfının Dictionary class ve SelectedIndex özelliğini kullanarak uygulayabilirsiniz.
şu kod parçacığını kullanarak bu Uygulanışı:
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
}
};
}
}
Kaynak: https://developer.xamarin.com/api/type/Xamarin.Forms.Picker/
Mükemmel kod örneği. Hala nasıl birlikte çalıştığını tam olarak anlamaya çalışıyorum, ancak bulabildiğim en basit örnek. Bunu yapmak isteyebilecek başka herkes için oldukça kolay bir şekilde arkasındaki kodda bulunan SelectedItem'in anahtarına ve değerlerine erişebildim. – Tim
Bu özelliği, xaml'deki seçiciye ekleyin ve sonra herhangi bir yöntemi adlandırın. Bu yöntemi xaml.cs public void OnPickerChangedEvent (nesne gönderen, EventArgs e) { var toplayıcı = (Picker) gönderici; var myIndex = picker.SelectedIndex; var myData = this.MyViewModel.SelectedItem.Key; } –
Tim