Another method by adding columns/data dynamically from your DataTable (with AutoGenerateColumns="False") =>
<controls:DataGrid x:Name="myDataGrid" AutoGenerateColumns="False" VerticalAlignment="Top" Margin="10, 20, 0, 0" />
then
public DataTable MyDataTable { get; set; }
and (add the "less than" character before object (editor bug...))
MyDataTable.Columns.Add("Name");
MyDataTable.Columns.Add("Age");
MyDataTable.Rows.Add("aaa", "11");
MyDataTable.Rows.Add("bbb", "22");
MyDataTable.Rows.Add("ccc", "33");
for (int i = 0; i < MyDataTable.Columns.Count; i++)
{
myDataGrid.Columns.Add(new CommunityToolkit.WinUI.UI.Controls.DataGridTextColumn()
{
Header = MyDataTable.Columns[i].ColumnName,
Binding = new Binding { Path = new PropertyPath("[" + i.ToString() + "]") }
});
}
var collectionObjects = new System.Collections.ObjectModel.ObservableCollection object>();
foreach (DataRow row in MyDataTable.Rows)
{
collectionObjects.Add(row.ItemArray);
}
myDataGrid.ItemsSource = collectionObjects;