Verwenden Sie DataGridTemplateColumn
. Ich habe Probe Testklasse
public class Test
{
public Test(string name, string attribute1, string attribute2)
{
Name = name;
Attributes = new Attribute(attribute1, attribute2);
}
public string Name { get; set; }
public Attribute Attributes { get; set; }
}
public class Attribute
{
public Attribute(string attribute1, string attribute2)
{
Attribute1 = attribute1;
Attribute2 = attribute2;
}
public string Attribute1 { get; set; }
public string Attribute2 { get; set; }
}
für Datenbindung und ein Datagrid in XAML
<DataGrid AutoGenerateColumns="False" Name="dataGrid1" ItemsSource="{Binding}">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Name" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding Path=Name}" VerticalAlignment="Center" Margin="3,3,3,3"/>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Attributes" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50*"/>
<RowDefinition />
<RowDefinition Height="50*"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="{Binding Path=Attributes.Attribute1}" VerticalAlignment="Center" Margin="3,3,3,3"/>
<Line Grid.Row="1" Stroke="Black" Stretch="Fill" X2="1" VerticalAlignment="Center"/>
<TextBlock Grid.Row="2" Text="{Binding Path=Attributes.Attribute2}" VerticalAlignment="Center" Margin="3,3,3,3"/>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
und füllen Sie es in Code-behind
List<Test> list = new List<Test>();
//populate list with your data here
dataGrid1.DataContext = list;
Gibt es einen Grund, warum Sie dies einen 'DataGrid' für verwenden? Das sieht einfach genug aus, dass Sie es einfacher in einer 'ListView' mit angepassten ListViewItems machen können. – Gjeltema
Ich denke, ein ListView würde auch funktionieren. Die echte Sache hat mehr Spalten, sie werden auf Klicken der spezifischen Zellen und so weiter gefärbt ... –
Ich bin nicht der größte Fan der 'ListView' selbst, aber für die Anpassungen, die Sie suchen, denke ich es wäre die beste Wahl. Ich habe festgestellt, dass das 'DataGrid' (sogar' DataGrid'-Steuerelemente von Drittanbietern) nicht so einfach in der Lage sind, Dinge wie "mehrreihige Spaltenzellen" auszuführen. – Gjeltema