WPF Combobox posiada:
SelectedValuePath
właściwość, która określa ścieżkę do nieruchomości , który jest używany do określenia wartości nieruchomości SelectedValue
. Jest podobna do właściwości ASP.NET ListItem
o nazwie Value
. Właściwość definiująca domyślny szablon określający sposób wyświetlania obiektów danych. Jest podobna do właściwości ASP.NET ListItem
o nazwie Text
.
Powiedzmy chcesz swój Combobox
aby pokazać zbiór następujących KeyValuePair
obiektów:
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"),
};
zdefiniować właściwość w widoku modelu powrocie tej kolekcji:
public KeyValuePair<int, string>[] TripLengthList
{
get
{
return tripLengthList;
}
}
Następnie Twój XAML dla Combobox
będzie:
<ComboBox
SelectedValue="{Binding FilterService.TripLengthFrom, Mode=TwoWay}"
ItemsSource="{Binding TripLengthList, Mode=OneTime}"
SelectedValuePath="Key"
DisplayMemberPath="Value" />
Gdzie ustawia się właściwości SelectedValuePath
i na żądane nazwy właściwości obiektów (odpowiednio) (Key
i Value
) wyświetlane przez Combobox
.
Lub, jeśli naprawdę chcesz dodać elementy do Combobox
w kodzie za zamiast używać wiązania, możesz to zrobić również.Na przykład:
<!--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"));
}
tj: niektóre int wartość –