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