如何将数据网格与 WPF 中的两个 itemsSource 绑定?

新手

我的 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>

我有两个列表或源需要绑定到此数据网格中。对于 item indatagrid.column和 textbox Discount(在 RowDetailsTemplate 中),它itemsSource = itemDisplayList同时使用“dgItemSub”中的 item 它使用 itemsSourceitemSubDisplayList2

问题是我在我的代码后面有这个代码

 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);
阿维纳什·雷迪

你好,我检查了这段代码,在这里你犯了一些错误,所以我修改了它Xaml

 <DataGrid  Name="dgDisplay" AutoGenerateColumns="False" CanUserAddRows="False" >
            <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   x:Name="txtDisc" Text="{Binding Discount, UpdateSourceTrigger=PropertyChanged}" Grid.Column="3" Grid.Row="1"/>

                            <DataGrid ItemsSource="{Binding itemSubDisplayList}" x:Name="dgItemSub" AutoGenerateColumns="False"  CanUserAddRows="False">

                                <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>

代码

   public partial class MainWindow : Window
        {
    
            public List<ItemDisplay> itemDisplayList { get; set; }
    
            public MainWindow()
            {
                InitializeComponent();
    
                this.DataContext = this;
    
                itemDisplayList = new List<ItemDisplay>();
                ItemDisplay itemDisplay = new ItemDisplay()
                {
                    ItemCode = "1",
                    ItemName = "1",
                    ItemPrice = "1",
                    Quantity = "1",
                    itemSubDisplayList = new List<ItemSub>()
                };
                itemDisplay.itemSubDisplayList.Add(new ItemSub { ItemIdSub = "sa", ItemSubCode = "ran" });
                itemDisplayList.Add(itemDisplay);
    
                dgDisplay.ItemsSource = itemDisplayList;
    
            }


  public class ItemDisplay
    {
        public string ItemCode { get; set; }
        public string ItemPrice { get; set; }
        public string ItemName { get; set; }
        public string Quantity { get; set; }
        public List<ItemSub> itemSubDisplayList { get; set; }
    }


    public class ItemSub
    {
        public string ItemIdSub { get; set; }
        public string ItemSubCode { get; set; }
    }

输出 输出 ss

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将多个项目添加到ItemsSource WPF多个集合绑定中?

来自分类Dev

XAML中的WPF ListView绑定ItemsSource

来自分类Dev

如何在WPF中将ItemsSource与ObservableCollection绑定

来自分类Dev

WPF ComboBox绑定ItemsSource

来自分类Dev

如何将单个属性绑定到WPF中两个控件的选择?

来自分类Dev

如何将单个属性绑定到WPF中两个控件的选择?

来自分类Dev

WPF ComboBox:将SelectedItem设置为不在ItemsSource->绑定奇数中的项目

来自分类Dev

WPF列表框将ItemsSource与MVVM-light绑定

来自分类Dev

使用WPF在TextBlock中对ItemsControl的ItemsSource的绑定计数

来自分类Dev

如何将数据绑定到WPF中的gridcontrol

来自分类Dev

WPF将两个变量绑定到边距

来自分类Dev

WPF DataGrid 绑定到 ItemsSource 项属性

来自分类Dev

WPF-如何从两个链接的集合绑定?

来自分类Dev

如何将两个不同的属性绑定到两个不同的数据上下文WPF C#

来自分类Dev

如何在WPF中绑定对象的两个实例(或者可以?)

来自分类Dev

如何在WPF中绑定对象的两个实例(或者可以?)

来自分类Dev

如何将网格绑定到WPF中的选定树视图项目

来自分类Dev

同一控件WPF中的两个数据绑定

来自分类Dev

在 WPF XAML 中,如何使用数据触发器绑定文本块中的两个属性?

来自分类Dev

如何将列表框ItemsSource与外部资源字典中的数组绑定

来自分类Dev

将属性从ItemsSource中的元素绑定到标签内容

来自分类Dev

将Combobox ItemsSource绑定到DataTemplate中的StaticResource吗?

来自分类Dev

如何使用MVVM模式在WPF数据网格中绑定CurrentCell

来自分类Dev

如何在ItemsSource绑定中获取当前的“项目”

来自分类Dev

如何在ItemsSource绑定中获取当前的“项目”

来自分类Dev

如何在xceed datagrid中绑定组合框的Itemssource

来自分类Dev

如何将 Wpf 数据网格绑定到动态创建的列名、值对?

来自分类Dev

如何将静态资源用于 WPF 数据网格组合框绑定

来自分类Dev

WPF绑定到两个属性

Related 相关文章

  1. 1

    如何将多个项目添加到ItemsSource WPF多个集合绑定中?

  2. 2

    XAML中的WPF ListView绑定ItemsSource

  3. 3

    如何在WPF中将ItemsSource与ObservableCollection绑定

  4. 4

    WPF ComboBox绑定ItemsSource

  5. 5

    如何将单个属性绑定到WPF中两个控件的选择?

  6. 6

    如何将单个属性绑定到WPF中两个控件的选择?

  7. 7

    WPF ComboBox:将SelectedItem设置为不在ItemsSource->绑定奇数中的项目

  8. 8

    WPF列表框将ItemsSource与MVVM-light绑定

  9. 9

    使用WPF在TextBlock中对ItemsControl的ItemsSource的绑定计数

  10. 10

    如何将数据绑定到WPF中的gridcontrol

  11. 11

    WPF将两个变量绑定到边距

  12. 12

    WPF DataGrid 绑定到 ItemsSource 项属性

  13. 13

    WPF-如何从两个链接的集合绑定?

  14. 14

    如何将两个不同的属性绑定到两个不同的数据上下文WPF C#

  15. 15

    如何在WPF中绑定对象的两个实例(或者可以?)

  16. 16

    如何在WPF中绑定对象的两个实例(或者可以?)

  17. 17

    如何将网格绑定到WPF中的选定树视图项目

  18. 18

    同一控件WPF中的两个数据绑定

  19. 19

    在 WPF XAML 中,如何使用数据触发器绑定文本块中的两个属性?

  20. 20

    如何将列表框ItemsSource与外部资源字典中的数组绑定

  21. 21

    将属性从ItemsSource中的元素绑定到标签内容

  22. 22

    将Combobox ItemsSource绑定到DataTemplate中的StaticResource吗?

  23. 23

    如何使用MVVM模式在WPF数据网格中绑定CurrentCell

  24. 24

    如何在ItemsSource绑定中获取当前的“项目”

  25. 25

    如何在ItemsSource绑定中获取当前的“项目”

  26. 26

    如何在xceed datagrid中绑定组合框的Itemssource

  27. 27

    如何将 Wpf 数据网格绑定到动态创建的列名、值对?

  28. 28

    如何将静态资源用于 WPF 数据网格组合框绑定

  29. 29

    WPF绑定到两个属性

热门标签

归档