У меня есть что-то подобное в моем xaml
<DataGrid Name="dgDisplay" >
<DataGrid.Columns>
<DataGridTextColumn IsReadOnly="True" x:Name="dgItemCode" Width="100" Header="Barcode" Binding="{Binding ItemCode}" />
<DataGridTextColumn IsReadOnly="True" x:Name="dgItemName" Width="200" Header="Item Name" Binding="{Binding ItemName}" />
<DataGridTextColumn IsReadOnly="True" x:Name="dgItemPrice" Width="100" Header="Item Price" Binding="{Binding ItemPrice, StringFormat=RM {0}}" />
<DataGridTextColumn IsReadOnly="True" x:Name="dgQuantity" Width="150" Header="Quantity" Binding="{Binding Quantity, UpdateSourceTrigger=PropertyChanged}" />
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate >
<DataTemplate x:Name="dtItemDisplay" >
<StackPanel Name="spItemDisplay2" HorizontalAlignment="Stretch" Background="White" >
<Grid>
<TextBlock Text="Discount: " FontWeight="Bold" Grid.Column="2" Grid.Row="1"/>
<TextBox KeyDown="TxtDisc_KeyDown" x:Name="txtDisc" Text="{Binding Discount, UpdateSourceTrigger=PropertyChanged}" Grid.Column="3" Grid.Row="1"/>
<DataGrid ItemsSource="{Binding itemSubDisplayList2}" x:Name="dgItemSub">
<DataGrid.Columns>
<DataGridTextColumn Header="item sub" Binding="{Binding ItemIdSub}"/>
<DataGridTextColumn Header="item sub code" Binding="{Binding ItemSubCode}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</StackPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
У меня есть два списка или источники, которые мне нужно связать в этой сетке данных.для элемента в datagrid.column
и текстовом поле Discount
(в RowDetailsTemplate) его использование itemsSource = itemDisplayList
, в то время как для элемента внутри 'dgItemSub' его использование itemsSource itemSubDisplayList2
дело в том, что у меня есть этот код в моем кодепозади
dgDisplay.ItemsSource = itemDisplayList;
dgDisplay.ItemsSource = itemSubDisplayList2;
но похоже, что я не могу использовать оба.работает только тот элемент, который связан с itemSubDisplayList2
.но если я не сделаю этого, он не покажет никакого вывода в моей сетке данных.
Я пробовал что-то подобное
<DataGrid Name="dgDisplay" ItemsSource="{Binding itemDisplayList}">
<DataGrid ItemsSource="{Binding itemSubDisplayList2}" x:Name="dgItemSub">
без выполнения dgDisplay.ItemsSource = itemDisplayList;
и dgDisplay.ItemsSource = itemSubDisplayList2;
вкод позади, но это не сработало.
Как я могу связать с 2 itemsSource в этом?
или есть способ получить доступ к dgItemSub
из кода позади.как я хочу что-то вроде этого
dgItemSub.ItemsSource = itemSubDisplayList2;
вот как я кодирую itemDisplayList
и itemSubDisplayList2
, и я кодирую это в коде
ItemDisplay itemDisplay = new ItemDisplay()
{
ItemCode = item.ItemCode,
ItemName = item.ItemName,
ItemPrice = item.ItemPrice,
Quantity = 1,
};
itemDisplayList.Add(itemDisplay);
foreach (var id in itemIds)
{
SimpleItem item2 = simpleItemBO.GetItemByItemId(id);
itemList.Add(item2);
ItemSubDisplay itemSubDisplay = new ItemSubDisplay();
itemSubDisplay.ItemIdSub = item2.ItemId;
itemSubDisplay.ItemSubCode = item2.ItemCode;
itemSubDisplayList.Add(itemSubDisplay);
}
itemSubDisplayList2.AddRange(itemSubDisplayList);