【发布时间】:2011-12-09 08:31:19
【问题描述】:
我有一个绑定到 ObserveableCollection(MyClass) source1 的 Datagrid;
MyClass 有 2 个属性:字符串名称,int AGE
现在我在集合中有 50 个 MyClass 对象,这意味着我的数据网格中有 50 行。 如果我想查看所有行,我必须滚动,没关系!!
private void dataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e){
int index = dataGrid.SelectedIndex;
obsCollection[index].Name="AAAAA";
}
每次我点击一行时,我都希望该行上的名称更改为字符串 Name="AAAAAA";
如果我向上或向下滚动并且该行不再显示在数据网格中,那么整个事情都会起作用。不知何故,该行在看不见时会更新,然后再显示。当我滚动并返回该行并且该行现在再次在数据网格中显示时,该值已被更新。
但我想要立即改变!只需选择/单击该行并将名称更改为“AAAAAA”。 我不想让那一行消失,以获取更新。
编辑:我不能使用 datagrid.itemsssource=null;因为我会在 selectionchanged 上得到无限循环
【问题讨论】:
-
您的项目 (MyClass) 是否实现了 INotifyPropertyChanged?这是 UI 看到项目本身的变化的要求。
标签: silverlight data-binding datagrid