Я создал DataGrid с DataGrid в RowDataTemplete.I необходимо связать его следующими способамиКак связать DataGrid в DataGrid.RowDetailTemplate
<DataGrid Name="dgUsers" AutoGenerateColumns="False" Background="#FFDED6D6">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}" IsReadOnly="True" Foreground="#FF9C2626" />
<DataGridTextColumn Header="Birthday" Binding="{Binding Birthday}" IsReadOnly="True" />
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<DockPanel Background="GhostWhite">
<Image DockPanel.Dock="Left" Source="{Binding ImageUrl}" Height="64" Margin="10" />
<Grid Margin="0,10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Item" Binding="{Binding Path=Items.item}" IsReadOnly="True" Foreground="#FF9C2626" />
<DataGridTextColumn Header="Qty" Binding="{Binding Path=Items.qty}" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</DockPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
код CS дается ниже
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
List<User> users = new List<User>();
users.Add(new User() { Id = 1, Name = "John Doe", Birthday = new DateTime(1971, 7, 23), ImageUrl = "http://www.wpf-tutorial.com/images/misc/john_doe.jpg", Items = new Items() { item="Thenga",qty="2"} });
users.Add(new User() { Id = 2, Name = "Jane Doe", Birthday = new DateTime(1974, 1, 17), Items = new Items() { item="Olakka",qty="5"} });
users.Add(new User() { Id = 3, Name = "Sammy Doe", Birthday = new DateTime(1991, 9, 2), Items = new Items() { item = "Punnaak", qty = "3" } });
dgUsers.ItemsSource = users;
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime Birthday { get; set; }
public string ImageUrl { get; set; }
public Items Items { get; set; }
}
public class Items
{
public string item { get; set; }
public string qty { get; set; }
}
}
После Выполнение кода выше; RowDetailsTemplate не привязана к моим данным. Мне нужна ваша помощь для привязки DataGrid к DataGrid как к RowDetailsTemplate
Если я понимаю, что вы хотите сделать, то ваш внутренние данные элементов сетки источник должен связываться с 'Items 'property:' ItemsSource = "{Binding Items}", но это не будет работать, поскольку «Элементы» не являются списком. Я думаю, что вам нужен список – dkozl
Да ... Я уже делаю это с ItemsSource, но данные не привязываются к ListView –
Что такое ListView? Здесь нет списка. Там 'DataGrid' с внутренним' DataGrid' – dkozl