Я чувствую, что то, что я пытаюсь сделать, довольно просто и просто, но из исследования, которое я сделал, похоже, что я делаю все правильно. Я просто создал проект WPF в ваниле, инфраструктуру установки объекта, и теперь я пытаюсь привязать коллекцию своих сотрудников (которые имеют данные) к сетке данных.Wpf DataGrid не показывает связанные данные
XAML:
<DataGrid Name="EmployeesView" CanUserAddRows="False" CanUserResizeColumns="True" CanUserSortColumns="True" IsReadOnly="True" Margin="10,10,0,0">
<DataGrid.Columns>
<DataGridTextColumn Header="First Name" Binding="{Binding FirstName}" />
<DataGridTextColumn Header="Last Name" Binding="{Binding LastName}" />
<DataGridTextColumn Header="Phone Number" Binding="{Binding PhoneNumber}" />
<DataGridTextColumn Header="Pay Rate" Binding="{Binding PayPerHour}" />
<DataGridTextColumn Header="Hire Date" Binding="{Binding HireDate}" />
</DataGrid.Columns>
</DataGrid>
Вот моя модель:
public class Employee
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string PhoneNumber { get; set; }
public double PayPerHour { get; set; }
public DateTime HireDate { get; set; }
}
А вот мой код позади (не используя MVVM)
private CompanyContext db = new CompanyContext();
public ObservableCollection<Employee> Employees = new ObservableCollection<Employee>();
public AddEmployee()
{
RefreshGrid();
InitializeComponent();
}
private void RefreshGrid()
{
Employees = db.Employees.ToObservableCollection();
EmployeesView = new DataGrid();
EmployeesView.ItemsSource = Employees;
}
.ToObservableCollection
является метод расширения, который просто отбрасывает IEnumerable до ObservableCollection
Я также пробовал это с List<>
, По какой-то причине я должен позвонить EmployeesView = new DataGrid();
другой мудрый EmployeesView.ItemsSource = Employees;
дает null ref на EmployeesView
. Может быть, я ошибаюсь? Я здесь теряю, какие-то идеи?
* «Это может быть, где я ошибаюсь?» * - Да, именно здесь вы ошибаетесь. Я предполагаю, что этот код не в коде вашего взгляда? –
Я могу подтвердить, что 'Сотрудники' имеет записи из базы данных – user4612487
@MikeEason Это,' AddEmployee.xaml' и 'AddEmployee.xaml.cs' У меня есть форма на той же странице, и ее привязки работают нормально. – user4612487