Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据网格未填充_C#_Wpf_Data Binding_Datagrid - Fatal编程技术网

C# 数据网格未填充

C# 数据网格未填充,c#,wpf,data-binding,datagrid,C#,Wpf,Data Binding,Datagrid,我试图在datagrid中显示数据,但它不显示任何数据。在经历断点时,我学到了以下几点: 对象receive具有数据 ocReceiptItem具有值 将ocReceiptItem分配给grdSalesCart的datacontext后,我可以看到这些值位于datacontext中 绑定名称与ocReceiptItem中的名称匹配 我不知道为什么它没有填充,因为它在DataContext中有数据 数据网格: 代码: 私人收据; 私人可观测收集项目; 私有void UpdateCartAn

我试图在datagrid中显示数据,但它不显示任何数据。在经历断点时,我学到了以下几点:

  • 对象receive具有数据
  • ocReceiptItem具有值
  • 将ocReceiptItem分配给grdSalesCart的datacontext后,我可以看到这些值位于datacontext中
  • 绑定名称与ocReceiptItem中的名称匹配
我不知道为什么它没有填充,因为它在DataContext中有数据

数据网格:

代码:
私人收据;
私人可观测收集项目;
私有void UpdateCartAndTotals()
{
TransactionManager TM=新建TransactionManager();
收据=TM.ReturnReceiptTotalsAndCart(收据);
ocReceiptItem=receipt.lstReceiptItem;
grdSalesCart.DataContext=ocReceiptItem;
//DataContext=ocReceiptItem;
//grdSalesCart.itemsource=DGM.ReturnSelectedDataTable(13,标准)。默认视图;
}
我所尝试的:
  • 我没有使用DataContext,而是尝试设置ItemsSource,但运气不佳
  • 在DataGrid定义中设置DataContext
  • 在DataGrid定义中设置ItemsSource
  • 将ocReceiptItem更改为ReceiptItem类型的列表
  • 将收据和ocReceiptItem更改为公用
我看到的其他一些问题:


何时调用UpdateCartAndTotals?从以前的方法收集数据后立即调用它。正在触发。数据上下文是不够的。DataGrid应该有ItemsSourceOkay,所以我也会将ocReceiptItem设置为ItemSource?哦,天哪。。。成功了。非常感谢。
<DataGrid Name="grdSalesCart" Grid.Column="1" Grid.ColumnSpan="12" Grid.Row="12" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
                  AutoGenerateColumns="False" CanUserSortColumns="false" ScrollViewer.VerticalScrollBarVisibility="Auto" CanUserAddRows="False">
            <DataGrid.Columns>
                <DataGridTemplateColumn Header="Remove Item" Width="3*">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Button Name="btnRemoveItem" Content="Remove Item" Click="btnRemoveItem_Click"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
                <DataGridTemplateColumn Header="Edit Item" Width="2*">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Button Name="btnEditItem" Content="Edit Item" Click="btnEditItem_Click"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
                <DataGridTextColumn Header="SKU" Width="2*" Binding="{Binding intItemIndicator, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" IsReadOnly="True"/>
                <DataGridTextColumn x:Name="txtCartQuantity" Header="Quantity" Width="3*" Binding="{Binding intQuantity, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" IsReadOnly="True"/>
                <DataGridTextColumn Header="Description" Width="9*" Binding="{Binding varItemDescription, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" IsReadOnly="True"/>
                <DataGridTextColumn Header="Price" Width="3*" Binding="{Binding intItemPrice, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, Converter={StaticResource Double}}" IsReadOnly="True"/>
                <DataGridTemplateColumn Header="Discount" Width="3*">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <StackPanel>
                                <TextBox Name="txtDiscountAmountCart" Text="{Binding intItemDiscount, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" IsEnabled="False"/>
                                <CheckBox Name="chkDiscountPercent" Content="Percent?" IsChecked="{Binding bitIsPercentageDiscount, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" IsEnabled="False"/>
                            </StackPanel>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>
private Receipt receipt;
private ObservableCollection<ReceiptItem> ocReceiptItem;

private void UpdateCartAndTotals()
{
    TransactionManager TM = new TransactionManager();
    receipt = TM.ReturnReceiptTotalsAndCart(receipt);
    ocReceiptItem = receipt.lstReceiptItem;
    grdSalesCart.DataContext = ocReceiptItem; 
    //DataContext = ocReceiptItem;
    //grdSalesCart.ItemsSource = DGM.ReturnSelectedDataTable(13, criteria).DefaultView;
}