Вот мой код:
<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()
метод, яудалите элемент из коллекции и вызовите propertyaged.Реакция пользовательского интерфейса: я не могу правильно выбрать ячейки в сетке данных, которые соответствуют удаленному Point
.Они не удалены.Это похоже на ошибку пользовательского интерфейса, есть ли обходной путь?
Извините, что он такой грязный - просто быстрый пример.
Спасибо, Илья