0

我正在使用 WPF 和 EF。我正在使用 Datagrid 来显示信息。

在我的视图模型中,我有一个 ObservableCollection。这个集合是我的 DataGrid 的直接来源。这是我的 DataGRid 的声明:

<DataGrid Margin="6" BorderBrush="Black" BorderThickness="1" 
          AutoGenerateColumns="False" 
          SelectionMode="Extended" 
          SelectionUnit="FullRow"
          AlternatingRowBackground="Gainsboro" 
          AlternationCount="2" 
          Name="DataGridClientSpecs" 
          CanUserAddRows="False"
          ItemsSource="{Binding ClientSpecifications}" 
          VerticalScrollBarVisibility="Auto" Height="500" >
    <DataGrid.Columns>
            <DataGridCheckBoxColumn Header="Wanted ?" Binding="{Binding Wanted}" />
            <DataGridTextColumn Header="Product" Binding="{Binding ProductSpecification.ProductType}" />
            <DataGridTextColumn Header="Conditionnement" Binding="{Binding ProductSpecification.ConditionnementType}" />
    <DataGrid.Columns>
</DataGrid>

我有两个问题:

  • 当我尝试选择一行时,它总是选择第一行。

  • 有些行重复。

当我将集合绑定到 ListBox 时,我没有重复的行,但选择仍然不起作用。

希望可以有人帮帮我...

干杯

托马斯

4

1 回答 1

1

我解决了我的问题:-)

这是实体框架的错!因为它是一个新项目列表(我的意思是它们不存在于数据库中)所以它们的 ID 等于 0 并且因为我正在覆盖这个类的 Equals() 方法并且我正在对 ID 进行比较, ID 始终为 0,因此我列表中的所有项目都是相同的 :-)

顺便说一句,所有显示项目列表的控件都是一样的。

问题解决了 !希望它会帮助人们。

干杯托马斯

于 2012-06-13T06:34:59.910 回答