大家好大家好我是
最近我遇到了一個問題。
我試着把一個數據網格放到另一個數據網格中。主數據網格有兩列 - 文本和模板(這裏我把另一個數據網格)。內部數據網格有一個文本列。
主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();
}
您可以通過簡單的設置DataGrid的背景屬性擺脫了灰色的,但我想你想比這更? – mm8
@ mm8是的,我想垂直拉伸行。顏色無關緊要。 –
請參考我的回答。 – mm8