Ich verwende ein Xamarin.Forms Picker
und es wird von einem List<KeyValuePair<string, string>>
aufgefüllt. Das Problem ist, dass es nicht so angezeigt wird, wie ich es möchte.Anzeigeformat der Liste ändern <KeyValuePair <Zeichenfolge, Zeichenfolge >>
XAML:
<Picker x:Name="VersionPicker" ItemsSource="{Binding}"/>
C#:
Dictionary<string, string> VersionDictionary = new Dictionary<string, string>()
{
{ "asv1901", "American Standard Version" },
{ "bbe", "Bible In Basic English" },
};
List<KeyValuePair<string, string>> VersionList = VersionDictionary.ToList();
VersionPicker.BindingContext = VersionList;
Was es produziert wie das ist ...
[asv1901, American Standard Version]
ich Picker
möchte etwas in dieser Richtung haben ..
American Standard Version (asv1901)
Gibt es eine Möglichkeit, dies zu tun? XAML oder C# wäre in Ordnung (da es sich um eine rein visuelle Änderung handelt, dachte ich, dass XAML oder ein Konverter am sinnvollsten wäre).
ItemDisplayBinding wird verwendet, um den angezeigten Text von Ihrer Quelle zu binden. Anstatt KeyValuePair zu verwenden, können Sie Ihre eigene Klasse erstellen (oder KVP erweitern), die eine Display-Eigenschaft enthält, die wie gewünscht formatiert wurde. – Jason
Versuchen Sie Folgendes: var VersionList = VersionDictionary.AsEnumerable(). Wählen Sie (x => string.Format ("{0} ({1})", x.Value, x.Key) .ToList(); – jdweng
@jdweng FYI ... Sie benötigen ein zusätzliches ')' zwischen 'x.Key)' und '.ToList()'. – doubleJ