Wie der Titel sagt, versuche ich ein DataGrid in DataGrid zu bekommen. Mit meinem Code werden nichts als die Spaltennamen angezeigt. Irgendwann konnte ich die Daten vom ersten DataGrid zeigen, aber jetzt gibt es einfach nichts mehr.WPF Visual C# DataGrid in einem DataGrid
XAML:
<Window x:Class="WpfDataGridSample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="200" Width="400">
<Grid Margin="10">
<DataGrid Name="dgUsers" AutoGenerateColumns="False" ItemsSource="{Binding User}">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}" />
<DataGridTextColumn Header="Birthday" Binding="{Binding Birthday}" />
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<DataGrid Name="dgUserAddress" AutoGenerateColumns="False" ItemsSource="{Binding Address}">
<DataGrid.Columns>
<DataGridTextColumn Header="Street" Binding="{Binding Street}" />
<DataGridTextColumn Header="Number" Binding="{Binding Number}" />
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
</Grid>
</Window>
XAML.CS:
namespace WpfDataGridSample
{
public partial class MainWindow: Window
{
public MainWindow()
{
InitializeComponent();
List<User> User = new List<User>();
var user1 = new User()
{
Id = 1,
Name = "John Doe",
Birthday = new DateTime(1971,7,23)
};
user1.Address.Add(new Address()
{
Street = "Teststreet1",
Number = 1
});
user1.Address.Add(new Address()
{
Street = "Teststreet1",
Number = 11
});
User.Add(user1);
var user2 = new User()
{
Id = 2,
Name = "Jane Doe",
Birthday = new DateTime(1974,1,17)
};
user2.Address.Add(new Address()
{
Street = "Teststreet2",
Number = 2
});
user2.Address.Add(new Address()
{
Street = "Teststreet2",
Number = 22
});
User.Add(user2);
var user3 = new User()
{
Id = 3,
Name = "Sammy Doe",
Birthday = new DateTime(1991,9,2)
};
user3.Address.Add(new Address()
{
Street = "Teststreet3",
Number = 3
});
user3.Address.Add(new Address()
{
Street = "Teststreet3",
Number = 33
});
User.Add(user3);
}
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime Birthday { get; set; }
public List<Address> Address { get; set; }
public User()
{
Address = new List<Address>();
}
}
public class Address
{
public string Street { get; set; }
public int Number { get; set; }
}
}
Wie ich es versuchte, es warf nur Fehler, konnte es nicht sogar kompilieren:/ –
Kannst du den Fehler, pls? – Michelle
Nun gibt es 115 Fehler: S 'InitializeComponent(); öffentliche Liste Benutzer {get; einstellen; } var user1 = new User() { Id = 1, Name = "John Doe", Geburtstag = new Datetime (1971,7,23) }; 'u wie dieses meaned? –