Здесь я читал десятки тем, и я не могу понять, что я делаю неправильно.Наблюдаемая коллекция не обновляет пользовательский интерфейс
У меня есть ObservableCollection, я могу добавить новых сотрудников, но пользовательский интерфейс не отображает изменения сразу. Если я остановлюсь и перезапустите, появятся изменения.
public class MainViewModel : ObservableObject
{
DataAccess.EmployeeRepository repository = new DataAccess.EmployeeRepository();
private ObservableCollection<Employee> employees;
public MainViewModel()
{
employees = new ObservableCollection<Employee>(repository.GetEmployees());
}
public ObservableCollection<Employee> Employees
{
get { return employees; }
set
{
employees = value;
OnPropertyChanged("Employees");
}
}
Мой XAML имеет следующие привязки:
<ListView Name="ListViewEmployeeDetails" Grid.Row="1" Margin="4,109,12,23" ItemsSource="{Binding Employees}" SelectedItem="{Binding CurrentEmployee}" >
<ListView.View>
<GridView x:Name="grdTest">
<GridViewColumn Header="ID" DisplayMemberBinding="{Binding EmployeeID}" Width="100"/>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding EmployeeName}" Width="100" />
<GridViewColumn Header="Phone" DisplayMemberBinding="{Binding EmployeePhone}" Width="100" />
</GridView>
</ListView.View>
</ListView>
Я не могу понять, что это неправильно. Любая помощь очень ценится!
Спасибо, но это не сработало. Listview все еще не освежает. – user3207555
Я добавлял в репозиторий, но не ObservableCollection. Можете ли вы сказать мне, подходит ли следующий подход: Сотрудник e = новый сотрудник(); e.EmployeeName = «Новый сотрудник»; e.DepartmentID = 1; репозиторий.AddEmployee (e); Сотрудники.Add (e); – user3207555
Вы установили DataContext в файл с кодом? И да, вам нужно как-то заполнить наблюдаемый коллектив. –