2014-01-17 2 views
0

Здесь я читал десятки тем, и я не могу понять, что я делаю неправильно.Наблюдаемая коллекция не обновляет пользовательский интерфейс

У меня есть 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> 

Я не могу понять, что это неправильно. Любая помощь очень ценится!

ответ

0
public MainViewModel() 
{ 
    Employees = new ObservableCollection<Employee>(repository.GetEmployees()); 
} 

Вы должны установить Employees, так как вы обжиг NotifyPropertyChanged событие на его сеттера.

+0

Спасибо, но это не сработало. Listview все еще не освежает. – user3207555

+0

Я добавлял в репозиторий, но не ObservableCollection. Можете ли вы сказать мне, подходит ли следующий подход: Сотрудник e = новый сотрудник(); e.EmployeeName = «Новый сотрудник»; e.DepartmentID = 1; репозиторий.AddEmployee (e); Сотрудники.Add (e); – user3207555

+0

Вы установили DataContext в файл с кодом? И да, вам нужно как-то заполнить наблюдаемый коллектив. –

Смежные вопросы