C#コードでWPF DataGrid
の列を作成しています。列の1つをDataGrid
の幅に自動的に伸ばしたいと思います。 XAMLではWidth="*"
と設定しました。コードでどのようにすればいいですか?
C#コードからDataGrid列ストレッチを作成するには?
EDITは、回答の中には、適切なソリューションに私をリードしているようだが、私は私が何をしようとしているもう少し詳しく説明する必要があると感じ:
私は実際に導出しています新しいクラスDataGrid
から。
mdColumn.Width = new DataGridLength(0.5, DataGridLengthUnitType.Star);
をしかし、これは私がスクロールすることができますので、広い列を作成します。私はuser24601のような最後の列の幅が提案設定しようとした
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);
:そのコンストラクタで、私はそのような4つの列を追加しますのために非常にのためにスクロールしなさい...私が0.1
またはより小さい値を使用するとき同じ問題。
私は私に間違った場所で何とかやっているようですか?
EDIT 2
OK、私は実際にScrollViewer
にこれを追加しているので、私は問題がある可能性があります。私はScrollViewer
を削除すると、物事はuser24601のように働く...
EDIT 3
ScrollViewer
内DataGrid
を持つときまあ、物事は動作しません...最初のいくつかの更なるテストを実行します前記。
Hm。私もこれを考え出しましたが、これは私のウィンドウよりも広い*たくさんの列を作成します。私は少し質問を精緻化しています - 多分事がより明確になるかもしれません。 –
公正にするには少し修正が必要です。あなたが書いたものは 'DataGridTextColumns'では動作しません。そこに 'dataGrid.Columns [i] .Width = new DataGridLength(1、DataGridLengthUnitType.Star)'を使用する必要があります。 –
あなたは正しいです。私は私の答えを編集します。私は最初のコメントでは答えだけではなくタイプを得ました。 – DanTheMan