0
我在這裏讀了十幾個主題,我無法弄清楚我做錯了什麼。Observable Collection不更新用戶界面
我有一個ObservableCollection,我可以添加新的Employees,但UI不會立即顯示更改。如果我停下來並重新啓動,則會顯示更改。
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; repository.AddEmployee(e);員工加入(e); – user3207555
您是否在代碼隱藏文件中設置了DataContext?是的,你需要以某種方式填充observablecollection。 –