Установка ширины столбцов datagrid из datatable
Всем привет,
У меня есть DataGrid, который заполняется из DataTable базой данных SQL. Мой SQL создает список объектов, и я создаю datatable и столбцы динамически. Я пытаюсь установить ширину столбца каждого столбца, чтобы я мог указать их на любую ширину, которую я хочу. Мое представление сетки загружается с помощью itemsource=datatable. Я перепробовал много разных способов, чтобы попытаться вызвать ширину моих столбцов в моем коде, но до сих пор мне не повезло. Вот что у меня есть.
public ProductsList() { InitializeComponent(); CreateProductList(); dt = DataTableProductList(productList); DataGridProducts.ItemsSource = dt.AsDataView(); //this.DataGridProducts.Columns[0].Width = 50; //this.DataGridProducts.Columns[1].Width = 150; //this.DataGridProducts.Columns[2].Width = 100; //this.DataGridProducts.Columns[3].Width = 50; //this.DataGridProducts.Columns[4].Width = 200; //this.DataGridProducts.Columns["ID"].Width = 50; } private void CreateProductList() { try { productList = ProductDB.GetProductList(); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } //DataGridProducts.Columns[0].Width = 50; } public static DataTable DataTableProductList(List<Product> prodList) { DataTable dataTable = new DataTable(); dataTable.Columns.Add("ID"); dataTable.Columns.Add("Product Name"); dataTable.Columns.Add("Product Price"); dataTable.Columns.Add("Quantity"); dataTable.Columns.Add("Product Listed Date"); foreach(var p in prodList) { var row = dataTable.NewRow(); row["ID"] = p.ProductId; row["Product Name"] = p.ProductName; row["Product Price"] = p.ProductPrice; row["Quantity"] = p.ProductQuantity; row["Product Listed Date"] = p.ProductListedDate; dataTable.Rows.Add(row); } return dataTable; }
Что я уже пробовал:
выключение - AutoGenerateColumns="False"
установка [0] - это.DataGridProducts.Колонки[4].Ширина = 200;
настройка ["ID"] - это.DataGridProducts.Столбцы[“ID”].Ширина = 50;
и еще много чего я перепробовал....
[no name]
вы пробовали настроить эти свойства в событии привязки данных?
srilekhamenon
установите свою ширину в сетке.Загруженное событие и оно будет работать :)