Hi Guys,
I'm creating an application that allows a user to enter some Employee data into a EF entity model, using CRUD operations.
So far, I have two ListViews. Here is an image to help understand what I have created so far.
What I want to achieve is when you select an item from Listbox1 (containing just the First name and surname) it just shows that specific employee details in Listbox2. Rather then showingall the results.
I have been advised to use Collection View Source. After researching a bit about it, I don't know where to start!
Here is the code of what I have currently.
ViewModel
private EmployeeViewModel selectedEmployee = null; public EmployeeViewModel SelectedEmployee { get { return selectedEmployee; } set { selectedEmployee = value; OnPropertyChanged("SelectedEmployee"); } } private ObservableCollection<EmployeeViewModel> employeeList = null; public ObservableCollection<EmployeeViewModel> EmployeeList { get { return GetEmployees(); } set { employeeList = value; OnPropertyChanged("EmployeeList"); } } internal ObservableCollection<EmployeeViewModel> GetEmployees() { if (employeeList == null) employeeList = new ObservableCollection<EmployeeViewModel>(); employeeList.Clear(); foreach (DataObjects.Employee i in new EmployeeRepository().GetAllEmployees()) { EmployeeViewModel c = new EmployeeViewModel(i); employeeList.Add(c); } return employeeList; }
xaml - Listbox 2;
<ListView Name="lsvEmployeeList" Height="170" Width="700" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollBarVisibility="Visible" HorizontalAlignment="Center" VerticalAlignment="Top" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding EmployeeList}" SelectedItem="{Binding SelectedEmployee, UpdateSourceTrigger=PropertyChanged}" ><ListView.View><GridView><GridViewColumn Header="Name" DisplayMemberBinding="{Binding }" Width="100" /></GridView></ListView.View></ListView>
xaml - listbox1
<ListView Height="330" HorizontalAlignment="Left" Name="lsNames" VerticalAlignment="Top" Width="170" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollBarVisibility="Visible" SelectedItem="{Binding SelectedEmployee}" ItemsSource="{Binding EmployeeList}" Margin="0,29,0,0"><ListView.View><GridView><GridViewColumn Header="FirstName" DisplayMemberBinding="{Binding FirstName}" Width="80" /><GridViewColumn Header="Surname" DisplayMemberBinding="{Binding Surname}" Width="80" /></GridView></ListView.View></ListView>
Any help would be much appreciated.
Many thanks,
Greg.