I am having a problem with databinding on a ComboBox
. The combobox does not show initially set items.
My .xaml:
<ComboBox
Name="LeaderTextBox"
Grid.Column="6"
Grid.Row="2"
MinWidth="150"
SelectedItem="{Binding Path=ProjectLeader}"
DisplayMemberPath="Name" Margin="5"
/>
In the code I set the ItemSource
like this:
LeaderTextBox.ItemsSource = service.GetAllEmployee();
service.GetAllEmployee()
returns a list/array of employees and they are also filled into the combobox, meaning I can select them.
My problem is that if I have a value set for ProjectLeader
, then it is not displayed. What am I missing there?
Model for reference:
[Serializable]
[DataContract(Namespace = "Shared", IsReference = true)]
public class Employee
{
public Employee()
{
this.Projects = new List<Project>();
}
[DataMember]
public int? ID { get; set; }
[DataMember]
public String Name { get; set; }
[DataMember]
public String JobDescription { get; set; }
[DataMember]
public String Department { get; set; }
[DataMember]
public String DirectDialing { get; set; }
[DataMember]
public bool Status { get; set; }
[DataMember]
public virtual Project LeaderOfProject { get; set; }
[DataMember]
public virtual List<Project> Projects { get; set; }
public override string ToString()
{
return ID + " " + Name + " " + JobDescription + " " + Department + " " + DirectDialing;
}
}
[Serializable]
[DataContract(Namespace = "Shared", IsReference = true)]
public class Project
{
public Project()
{
this.EmployeesWorkingOnProject = new List<Employee>();
this.ProjectSteps = new List<ProjectStep>();
}
[DataMember]
public int? ID { get; set; }
[DataMember]
public String Titel { get; set; }
[DataMember]
public DateTime StartDate { get; set; }
[DataMember]
public DateTime EndDate { get; set; }
[DataMember]
public String Description { get; set; }
[DataMember]
public Employee ProjectLeader { get; set; }
[DataMember]
public bool Status { get; set; }
[DataMember]
public virtual List<Employee> EmployeesWorkingOnProject { get; set; }
[DataMember]
public virtual List<ProjectStep> ProjectSteps { get; set; }
public override string ToString()
{
return ID +" "+ Titel+" "+StartDate+ " "+ EndDate +" "+ Description;
}
}