Confused with wpf ComboBox DisplayMemberPath,SelectedValue and SelectedValuePath
I have always struggled with those comboBox properties
- DisplayMemberPath
- SelectedValue
- SelectedValuePath
I am building a master detail form .
- ComboBox filled with Customers
- User Selects a Customer in Combo
- All the textBoxes EG Fills correctly
The problem I am having I have made it work but I don't understand those properties and the differences. Is there a noddy example explaining what they do?
Solution 1:
I think we can understand this better with an example. See this class:
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
}
and the following xaml:
<ComboBox ItemsSource="{Binding Source={StaticResource Employees}}"
DisplayMemberPath="Name"
SelectedValuePath="Id"/>
DisplayMemberPath
points to the Name
property, so the value displayed in the ComboBox
and the Employee
entries contained in the drop down list, will be the Name
property of the Employee
object.
To understand the other two, you should first understand SelectedItem
. SelectedItem
will return the currently selected Employee
object from the ComboBox
. You can also assign SelectedItem
with an Employee
object to set the current selection in the ComboBox
.
SelectedValuePath
points to Id
, which means you can get the Id
of currently selected Employee
by using SelectedValue
. You can also set the currently selected Employee
in the ComboBox
by setting the SelectedValue
to an Id
(which we assume will be present in the Employees
list).