WPF C# 프로젝트에서 DB (Sqlite)의 데이터로 DataGrid를 채우는 데 문제가 있습니다. 나는 이름으로 내 XAML 파일에 데이터 그리드를 정의한WPF DataGrid에 데이터가 채워지지 않습니다.
(dataGrid_Students) : DataGrid 구성 요소가 정의되는 경우, 나는이 방법을 호출이 윈도우의 생성자 내 C# 파일에서
<DataGrid Name="dataGrid_Students" Grid.Row="0" Grid.Column="0"
RenderOptions.ClearTypeHint="Enabled"
TextOptions.TextFormattingMode="Display"
CanUserAddRows="False"
CanUserDeleteRows="False"
SelectionUnit="FullRow"
AutoGenerateColumns="false"
>
<DataGrid.Columns>
<DataGridTextColumn Header="Index Number" />
<DataGridTextColumn Header="First Name" />
<DataGridTextColumn Header="Last Name" />
</DataGrid.Columns>
</DataGrid>
initDataGrid();
private void initDataGrid() {
//dataGrid_Student.DataContext = dbManager.Students; does not work
dataGrid_Student.ItemsSource = dbManager.Students;
}
그래서 확률값 :이 코드를 포함
public StudentForm() {
InitializeComponent();
this.WindowStartupLocation = WindowStartupLocation.CenterScreen;
initDataGrid();
}
흠 .. 내 DataGrid가 비어 있습니다. 내 학생 목록이 null 일 가능성이 있는지 확인했지만 그렇지 않은 경우 모든 데이터가 포함되어 있습니다. DataGrid에 데이터를 채우기 위해 내가 누락 된 것은 무엇입니까?
UPDATE :
내 학생 클래스 :
[Table("student")]
class Student {
[Key] // this is a primary key in my table
[Column(name:"brind")]
public int Brind { get; set; }
[Column(name:"first_name")]
public string FirstName { get; set; }
[Column(name:"last_name")]
public string LastName { get; set; }
}
이 컬럼에 학생 클래스 내 속성을 바인더 제본 :
<DataGrid Name="dataGrid_Student" Grid.Row="0" Grid.Column="0"
RenderOptions.ClearTypeHint="Enabled"
TextOptions.TextFormattingMode="Display"
CanUserAddRows="False"
CanUserDeleteRows="False"
SelectionUnit="FullRow"
AutoGenerateColumns="false"
>
<DataGrid.Columns>
<DataGridTextColumn Header="Index Number" Binding="{Binding Brind}" />
<DataGridTextColumn Header="First Name" Binding="{Binding FirstName}" />
<DataGridTextColumn Header="Last Name" Binding="{Binding LastName}" />
</DataGrid.Columns>
</DataGrid>
데이터 그리드는 여전히 비어 있습니다. 당신이 거짓으로 AutoGenerateColumns를 설정하기 때문에 당신은, 열에 대한 바인딩 부분을 누락
class ManagerDBContext : DbContext {
public ManagerDBContext() : base("Student_DbContext") {
Database.SetInitializer<ManagerDBContext>(null);
}
public DbSet<User> Users { get; set; }
public DbSet<Student> Students { get; set; }
}
열에 대한 바인딩 파트? 나는 바인딩에 익숙하지 않다. 어떻게 할 수 있는지 예를 들어 주시겠습니까? – Kapparino
@ Kapparino 학생의 속성에 바인딩하려는 열은 xaml에 정의되어야합니다. – Sajeetharan
이 바인딩 변수는이 변수입니다 - Student 클래스에 정의 된 속성입니까? – Kapparino