Я думаю, вы должны установить флаг «грязный» из вызываемых методов, чтобы фактически выполнить добавление и удаление элемента.Таким образом, если вы решите добавить дополнительные методы для взаимодействия со списком (контекстное меню, сочетание клавиш и т. Д.), Ваша логика будет в одном месте и готова к повторному использованию.
Метод add выглядел бы примерно так:
public void Add(MyListboxItem itemToAdd)
{
// Adding code here
// Set the boolean flag to true
this.IsDirty = true;
}
Это несколько наивный метод, поскольку добавление элемента и его удаление приводит к появлению приглашения, даже если список фактически не изменился по сравнению с егоисходное состояние.Если размер вашего списка не слишком велик, другой вариант будет сделать копию вспомогательных данных при первой загрузке, а затем сравнить окончательные данные с этой копией.Если нет различий, вам не нужно подсказывать.