using System; using System.Collections.ObjectModel; using System.ComponentModel; using System.Windows; using System.Windows.Data; using System.Windows.Input; namespace WpfApp035 { public class ViewModel : ICommand, INotifyPropertyChanged { private CollectionViewSource cvs = new(); public ICollectionView PeopleCollection { get { if (cvs.Source == null) cvs.Source = LoadData(); return cvs.View; } } public People? LastItem { get; set; } public event EventHandler? CanExecuteChanged; public event PropertyChangedEventHandler? PropertyChanged; public bool CanExecute(object? parameter) => true; public void Execute(object? parameter) { LastItem = (parameter == null) ? null : (People)parameter; PropertyChanged?.Invoke(this,new PropertyChangedEventArgs(nameof(LastItem))); } private ObservableCollection LoadData() { ObservableCollection col = new(); for (int i = 1; i < 10; i++) col.Add(new People() { FirstName = $"FirstName {i}" }); return col; } public class People { public string FirstName { get; set; } public bool IsSelected { get; set; } } } }