【发布时间】:2012-03-13 11:59:54
【问题描述】:
我的应用程序在启动时会使用从数据库中检索到的数据填充 DataGrid。我的字段是:姓名、ID 和状态。前两个没问题,但是第三个(Status)是一个int,1或者0,表示active或者inactive。
我决定创建一个用户控件来显示“状态”字段。它只不过是一个圆圈,根据“状态”的值变成绿色或红色。控件的默认颜色为红色。
我还创建了一个列表对象(“数据”),其中包含我的信息以及带有相应颜色的控件。到目前为止没有问题。一切正常,如果我快速查看我的数据对象,一切都会正常。
我的问题是,在使用“myDataGrid.ItemsSource = data”填充 DataGrid 后,每个控件“状态”显示为红色,而其中一些应该为绿色。如果我在任何给定时间断点并快速查看我的“数据”对象,一切都很好,但 DataGrid 不会更新。 排序也是如此。如果我更改任何控件的颜色,在对任何列进行排序后,它会将我所有用户控件的颜色重置为默认值(红色)。
经过一些测试和研究,我认为问题在于 DataGrid 在项目源的末尾更新自身并实例化新的用户控件,而不是在我的数据对象上使用这些控件。
有没有办法解决这个问题?我尝试了一些在网上找到的解决方案,但到目前为止都没有奏效!
【问题讨论】:
标签: wpf sorting wpfdatagrid