こんにちは皆さん
最近問題が1つあります。
私は1つのDataGridを別のDataGridに配置しようとしました。
メインDataGridには、textとtemplateの2つのカラムがあります(ここでは別のDataGridを配置します)。内部のDataGridには1つのテキスト列があります。
メインDGテキストセルの高さが内側のDGセルの合計高さを超えると、問題が発生します。
このようなもの:
Image
私の質問は:灰色の長方形で何かできますか?行間のグレーの高さを均等に分割できますか?または単純なストレッチ行ですか?
これを行うにはより良い方法がありますか? 2レベルのデータグリッドだけでなく、3,4,5レベルにも、より複雑なデータグリッドにも対応します。WPFが垂直に行を伸ばします
簡単な例:
ウィンドウ:背後
<DockPanel>
<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False" HeadersVisibility="None" CanUserAddRows="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=Col1}" Width="*"/>
<DataGridTemplateColumn Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DataGrid ItemsSource="{Binding Path=Col2}" AutoGenerateColumns="False" HeadersVisibility="None" CanUserAddRows="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding}" Width="*"/>
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</DockPanel>
コード:
public class Test1 : NotifyPropertyClass
{
private string col1;
public string Col1
{
get { return col1; }
set { col1 = value; OnPropertyChanged("Col1"); }
}
private List<string> col2;
public List<string> Col2
{
get { return col2; }
set { col2 = value; OnPropertyChanged("Col2"); }
}
}
public ObservableCollection<Test1> dc;
public MainWindow()
{
dc = new ObservableCollection<Test1>()
{
new Test1() { Col1 = "00" + Environment.NewLine + Environment.NewLine + Environment.NewLine + Environment.NewLine + "00",
Col2 = new List<string>() { "123", "456"} }
};
DataContext = dc;
InitializeComponent();
}
あなたは、単にデータグリッドの背景プロパティを設定することで、グレー色を取り除くことができますが、私はあなたがこれよりももっと欲しいと思いますか? – mm8
@ mm8はい、行を縦方向に伸ばしたいと思います。色は関係ありません。 –
私の答えを参照してください。 – mm8