WPF DataGrid에서 동적으로 열 추가
만드는 것
데이터와 열을 추가할 수 있는 DataGrid를 만듭니다.
htps : // 기주 b. 코 m / 이시다 722 / 타타 b ぇ mp ぇ
View 만들기
먼저 DataGird를 배치하고 ItemsSource를 바인딩합니다. 이번에는 DataTableView라는 속성에 바인딩했습니다.
MainWindow.xaml
<DataGrid ItemsSource="{Binding DataTableView}" />
DataTable 만들기
ViewModel을 만듭니다. 우선 테이블 데이터를 보관 유지하는 DataTable 객체를 만듭니다. 이것은 직접 외부에 공개하지 않기 때문에 private 로 합니다.
DataTableViewModel.cs
private readonly DataTable dataTable = new DataTable();
이 dataTable 객체에 데이터를 추가합니다. 열을 추가하려면 다음을 수행합니다.
DataTableViewModel.cs
dataTable.Columns.Clear();
dataTable.Rows.Clear();
dataTable.Columns.Add("ID");
dataTable.Columns.Add("Name");
이제 ID와 Name이라는 열이 추가되었습니다. 그런 다음 데이터를 추가합니다.
DataTableViewModel.cs
var row = dataTable.NewRow();
row[0] = 0;
row[1] = "Jhon";
dataTable.Rows.Add(row);
ID가 0인 Jhon이라는 데이터를 추가할 수 있었습니다.
View에 알리기
작성한 DataTable을 DataGrid에 표시하려면 DataView를 사용합니다. 구체적으로는 다음과 같은 속성을 준비합니다.
DataTableViewModel.cs
public DataView DataTableView => new DataView(dataTable);
DataTableView는 View의 DataGrid에 바인딩됩니다. 이 속성을 읽을 때마다 dataTable에서 DataView를 만듭니다.
DataTable은 ObservableCollection이 아니므로 컬렉션 변경을 알리지 않습니다. 그래서 직접 수동으로 변경을 통보해야합니다.
DataTableViewModel.cs
private void NotifyTableUpdate()
{
OnPropertyChanged(nameof(DataTableView));
}
테이블을 변경할 때마다 NotifyTableUpdate()를 실행해야 합니다.
Reference
이 문제에 관하여(WPF DataGrid에서 동적으로 열 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ishida722/items/6324b6b85bde5f40ca8b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)