【发布时间】:2010-11-18 06:52:53
【问题描述】:
这是我的代码:
<Grid>
<Button Content="Button" Click="button1_Click" />
<DataGrid ItemsSource ="{Binding Lst}" />
</Grid>
代码隐藏:
private void button1_Click(object sender, RoutedEventArgs e)
{
(this.DataContext as Some).remove();
}
数据源是:
public class Some : INotifyPropertyChanged
{
private List<Point> lst = new List<Point>();
public List<Point> Lst
{
get
{
return lst;
}
}
public Some()
{
lst.Add(new Point(2.3, 5));
lst.Add(new Point(267.3, 5));
lst.Add(new Point(2.3, 65));
lst.Add(new Point(2.63, 885));
lst.Add(new Point(27.3, 65));
}
public void remove()
{
lst.Remove(lst.Last());
if (PropertyChanged != null)
PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Lst"));
}
public event PropertyChangedEventHandler PropertyChanged;
}
当我调用remove() 方法时,我从集合中删除项目并调用propertychanged。 UI 反应是:我无法正确选择数据网格中对应于已删除Point 的单元格。它们没有被删除。这看起来像 UI 错误,有什么解决方法吗?
很抱歉,它太脏了 - 只是一个简单的示例。
谢谢,伊利亚
【问题讨论】:
标签: c# wpf data-binding datagrid c#-4.0