WPF Combobox hat:
SelectedValuePath
Eigenschaft, die den Pfad zu der Eigenschaft gibt, die den Wert der SelectedValue
Eigenschaft zu bestimmen, verwendet wird. Es ist ähnlich der Eigenschaft von ASP.NET ListItem
Value
.
DisplayMemberPath
Eigenschaft, die eine Standardvorlage definiert, die beschreibt, wie die Datenobjekte angezeigt werden. Es ist vergleichbar mit der Eigenschaft ListItem
von Text
.
Angenommen, Sie möchten Ihre Combobox
eine Sammlung der folgenden KeyValuePair
Objekte zeigen:
private static readonly KeyValuePair<int, string>[] tripLengthList = {
new KeyValuePair<int, string>(0, "0"),
new KeyValuePair<int, string>(30, "30"),
new KeyValuePair<int, string>(50, "50"),
new KeyValuePair<int, string>(100, "100"),
};
Sie definieren eine Eigenschaft Ihrer Ansicht nach Modell, dass die Sammlung der Rückkehr:
public KeyValuePair<int, string>[] TripLengthList
{
get
{
return tripLengthList;
}
}
Dann Ihr XAML für die Combobox
wäre:
<ComboBox
SelectedValue="{Binding FilterService.TripLengthFrom, Mode=TwoWay}"
ItemsSource="{Binding TripLengthList, Mode=OneTime}"
SelectedValuePath="Key"
DisplayMemberPath="Value" />
Wo Sie SelectedValuePath
und DisplayMemberPath
Eigenschaften auf die gewünschten Eigenschaftsnamen der Objekte (Key
und Value
entsprechend) Anzeigen durch die Combobox
eingestellt.
Oder, wenn Sie wirklich Elemente zu Combobox
in Code hinter hinzufügen möchten anstatt eine Bindung zu verwenden, können Sie es auch tun.Zum Beispiel:
<!--XAML-->
<ComboBox x:Name="ComboBoxFrom"
SelectedValue="{Binding FilterService.TripLengthFrom, Mode=TwoWay}" />
// Code behind
public partial class FilterView : UserControl
{
public FilterView()
{
this.InitializeComponent();
this.ComboBoxFrom.SelectedValuePath = "Key";
this.ComboBoxFrom.DisplayMemberPath = "Value";
this.ComboBoxFrom.Items.Add(new KeyValuePair<int, string>(0, "0"));
this.ComboBoxFrom.Items.Add(new KeyValuePair<int, string>(30, "30"));
this.ComboBoxFrom.Items.Add(new KeyValuePair<int, string>(50, "50"));
this.ComboBoxFrom.Items.Add(new KeyValuePair<int, string>(100, "100"));
}
heißt: einige int Wert –