TheBigBearNow Ответов: 0

Установка ширины столбцов 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

установите свою ширину в сетке.Загруженное событие и оно будет работать :)

0 Ответов