【发布时间】:2016-11-17 12:09:33
【问题描述】:
首先,我通常使用 MVVM 或 MVVMC 编写代码,但是对于一个非常简单的项目,我想尝试以“旧方式”来做所有事情,这意味着只使用逻辑背后的代码编写一个简单易懂的应用程序,而不是INotifyPropertyChanged 接口。
为此,我创建了一个非常简单的 Employee 示例应用程序,其中包含一个将员工列表加载到 Obersvablecolletion 的类。问题在于:设置 Itemssource 和 DataContext 后,加载后,我的 DataGrid 没有更新。当然我可以在加载后再次设置 DataContext,但是有没有更好的方法呢?某种在代码中告诉 DataGrid 其内容已更改并使它们无效?
这是我的示例代码:
public partial class MainWindow : Window
{
private EmployeeList _MyList;
public MainWindow()
{
InitializeComponent();
_MyList= new EmployeeList();
_MyList.Employees = new ObservableCollection<Employee>();
_MyGrid.DataContext = _MyList;
_MyGrid.ItemsSource = _MyList.Employees;
}
private void DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
}
private void _AddButton_Click(object sender, RoutedEventArgs e)
{
AddWindow newWindow = new AddWindow();
if (newWindow.ShowDialog() == true)
{
_MyList.Employees.Add(newWindow.NewEmployee);
}
}
private void _LoadButton_Click(object sender, RoutedEventArgs e)
{
_MyList.Load();
//Creates new_MyList.Employees and fills with content from a file. After that, my DataGrid does not get updated
}
【问题讨论】:
标签: c# wpf datagrid code-behind