public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); DataContext = new ViewModel(); } } public class ViewModel : INotifyPropertyChanged { private User selecedItme; public User SelecedItme { get { return selecedItme; } set { if (selecedItme != value) { selecedItme = value; OnPropertyChanged("SelecedItme"); } } } private ObservableCollection users = new ObservableCollection(); public ObservableCollection Users { get { return users; } set { if (users != value) { users = value; OnPropertyChanged("Users"); } } } public ViewModel() { Users.Add(new User() { Id = 1 ,Name = "user1" }) ; Users.Add(new User() { Id = 2, Name = "user2" }); Users.Add(new User() { Id = 3, Name = "user3" }); Users.Add(new User() { Id = 5, Name = "user4" }); Users.Add(new User() { Id = 6, Name = "user5" }); } public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged([CallerMemberName] string name = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); } } public class User { public int Id { get; set; } public string Name { get; set; } }