【发布时间】:2011-02-12 00:33:01
【问题描述】:
我有一个这样的数据网格:
<dg:DataGrid Name="dg" AutoGenerateColumns="False" CanUserDeleteRows="True">
<dg:DataGrid.Columns>
<dg:DataGridTextColumn Header="Product Code" x:Name="columnProductCode" Binding="{Binding Path=Product.ProductCode}" IsReadOnly="True" ></dg:DataGridTextColumn>
<dg:DataGridTextColumn Header="Product Name" x:Name="columnProductName" Binding="{Binding Path=Product.Name}" IsReadOnly="True" ></dg:DataGridTextColumn>
<dg:DataGridTextColumn Header="ProductMeasure" x:Name="columnDonViTinh" Binding="{Binding Path=Product.Measure IsReadOnly="True"></dg:DataGridTextColumn>
<dg:DataGridTextColumn Header="Quantity" x:Name="ColumnQuantity" Binding="{Binding Path=Quantity IsReadOnly="False"></dg:DataGridTextColumn>
</dg:DataGrid.Columns>
</dg:DataGrid>
在后面的代码中,我有一个这样的结构:
private struct ProductDetail
{
public TProduct Product { get; set ; } // TProduct is a class provied by a web service
public int Quantity { get; set; }
}
还有一个这样的列表:
private IList<ProductDetail> bs = new List<ProductDetail>();
我曾尝试将数据填充到“bs”。并像这样绑定:
this.dg.ItemsSource = this.bs;
一切正常。我可以插入新行,删除行,但是当我尝试修改 Quantity 列时,然后单击数据网格的标题(以求助)-> Quantity 列更改为之前。
我该如何解决这个问题。 谢谢高级。
【问题讨论】: