gpt4 book ai didi

c# - MVVM 数据网格绑定(bind)

转载 作者:太空狗 更新时间:2023-10-29 19:51:34 25 4
gpt4 key购买 nike

我正在为我的项目使用 MVVM,我正在尝试将数据库中的表与 DataGrid 绑定(bind)。但是当我运行我的应用程序时,数据网格是空的。

MainWindow.xaml.cs:

 public MainWindow(){
InitializeComponent();
DataContext = new LecturerListViewModel()
}

主窗口.xaml:

 <DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Source=Lecturers}" >
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Surname" Binding="{Binding Surname}"/>
<DataGridTextColumn Header="Phone" Binding="{Binding Phone_Number}" />
</DataGrid.Columns>
</DataGrid>

LecturerListViewModel.cs:

public class LecturerListViewModel : ViewModelBase<LecturerListViewModel> 
{

public ObservableCollection<Lecturer> Lecturers;
private readonly DataAccess _dataAccess = new DataAccess();

public LecturerListViewModel()
{
Lecturers = GetAllLecturers();
}

并且 ViewModelBase 实现了 INotifyPropertyChanged。

Lecturer.cs

public class Lecturer
{
public Lecturer(){}

public int Id_Lecturer { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public string Phone_Number { get; set; }

我做错了什么?我用调试器检查了它,DataContext 包含所有讲师,但数据网格中没有显示。

最佳答案

您的绑定(bind)有误。试试这个:

<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Lecturers}" >

代码隐藏:

private ObservableCollection<Lecturer> _lecturers = new ObservableCollection<Lecturer>();
public ObservableCollection<Lecturer> Lecturers
{
get { return _lecturers; }
set { _lecturers = value; }
}

Here是简单的示例代码 (LecturerSimpleBinding.zip)。

关于c# - MVVM 数据网格绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13296399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com