Как сделать столбец DataGrid растянутым из C # code?

Я создаю столбцы 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 .

9
задан Thorsten Dittmar 24 January 2012 в 16:22
поделиться