【发布时间】:2010-09-08 11:34:37
【问题描述】:
wpf 数据网格,其中将绑定到可观察的员工详细信息集合。
用户选择员工后,网格将从另一个屏幕加载。如果用户选择员工 A 多次相同的记录将加载到此网格中。
但我的问题是,当我选择员工 A,然后选择另一行的同一员工 A 时,我的行选择样式适用于两条记录。我将网格的选择模式属性设置为 Single。
然后也发生了相同记录的相同多重选择。
谁能帮我解决这个奇怪的问题。
【问题讨论】:
wpf 数据网格,其中将绑定到可观察的员工详细信息集合。
用户选择员工后,网格将从另一个屏幕加载。如果用户选择员工 A 多次相同的记录将加载到此网格中。
但我的问题是,当我选择员工 A,然后选择另一行的同一员工 A 时,我的行选择样式适用于两条记录。我将网格的选择模式属性设置为 Single。
然后也发生了相同记录的相同多重选择。
谁能帮我解决这个奇怪的问题。
【问题讨论】:
出现问题是因为 DataGrid 使用 Equals() 进行选择。并且 equals 对同一员工返回 true。
一种可能性是使用包装器对象 a 来包装您的 Employee 并提供其数据。然后问题就会解决,因为 Equals 仅在引用相等时才返回 true(只要您不覆盖它)。
Google 的 MVVM 模式。这样,您将创建这样的包装对象作为设计的一部分。
【讨论】: