Во-первых, вы должны избегать размещения свойства коллекции доступным для записи.IE, замените этот код:
private ObservableCollection<User> mUsers = new ObservableCollection<User>();
public ObservableCollection<User> Users
{
get
{
return mUsers;
}
set
{
mUsers = value;
RaisePropertyChangedEvent("Users");
}
}
этим кодом:
private ObservableCollection<User> mUsers = new ObservableCollection<User>();
public ObservableCollection<User> Users
{
get
{
return mUsers;
}
}
Затем, когда вы добавляете элемент в коллекцию, вам не нужно сообщать, что коллекция изменилась(свойство коллекции само по себе не изменилось), но это ответственность самой коллекции (через INotifyCollectionChanged):
Итак, метод "onclick" может быть просто таким:
Наконец, я бы заменил объявление ListBox.ItemsSource этим, поскольку два пути не требуются:
<ListBox x:Name="lstBox" ItemsSource="{Binding Users}"