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。 –