Я создаю столбцы WPF DataGrid
в моем коде C #. Я хочу, чтобы один из столбцов автоматически растягивался до ширины DataGrid
. В XAML я бы установил Width = "*"
. Как мне сделать это в коде?
РЕДАКТИРОВАТЬ
Некоторые ответы, кажется, приводят меня к правильному решению, но я чувствую, что мне нужно подробнее рассказать о том, что я пытаюсь сделать:
Я Фактически создаю новый класс из DataGrid
.В его конструкторе я добавляю четыре таких столбца:
this.IsReadOnly = true;
this.AutoGenerateColumns = false;
this.ItemsSource = m_dataSource;
DataGridTextColumn anColumn = new DataGridTextColumn() { Header = "Col1", Binding = new Binding("B1") };
DataGridTextColumn tpColumn = new DataGridTextColumn() { Header = "Col2", Binding = new Binding("B2") };
DataGridTextColumn txColumn = new DataGridTextColumn() { Header = "Col3", Binding = new Binding("B3") };
DataGridTextColumn mdColumn = new DataGridTextColumn() { Header = "Col4", Binding = new Binding("B4") };
this.Columns.Add(anColumn);
this.Columns.Add(tpColumn);
this.Columns.Add(txColumn);
this.Columns.Add(mdColumn);
Я попытался установить ширину последнего столбца, например user24601 , предложенный:
mdColumn.Width = new DataGridLength(0.5, DataGridLengthUnitType.Star);
Но это создает столбец, который настолько велик, что я могу прокручивать и прокручивать для очень долго ... Та же проблема, когда я использую 0,1
или даже меньшие значения.
Мне кажется, что я как-то делаю это не в том месте?
РЕДАКТИРОВАТЬ 2
Хорошо, у меня может быть проблема, потому что я добавляю это в ScrollViewer
. Сначала я проведу еще несколько тестов ...
РЕДАКТИРОВАТЬ 3
Что ж, ничего не работает при наличии DataGrid
в ScrollViewer
... Когда я удалите ScrollViewer
, все работает так, как сказал user24601 .