У меня есть пользовательский TabControl в приложении WPF (внимание: технология не важна, как она может измениться), который содержит TabItems.Каждый TabItem имеет текст и кнопку «x» для закрытия вкладки.
Запрос состоит в том, чтобы добавить некоторые функции в функцию закрытия, чтобы изменить поведение по умолчанию (простое закрытие).Что мне нужно сделать, это просто проверить, изменились ли некоторые данные, отображаемые на экране, и, если это так, попросить пользователя с некоторым MessageBox сообщить ему, что некоторые изменения были внесены в эту вкладку.
В MessageBox будет отображаться сообщение «В данные были внесены некоторые изменения. Вы хотите сохранить их?», И будет иметь параметры:
- Да - Сохранить изменениязатем закройте вкладку;
- Нет - не сохраняйте их и закройте вкладку;
- Отмена - ничего не делайте, не сохраняйте, не закрывайте;
Естьнет проблем с обнаружением внесения изменений в экран, потому что я просто устанавливаю некоторое свойство HasChanged всякий раз, когда в данные вносятся какие-либо изменения.
На данный момент единственным решением, о котором я подумал, былорасширить элемент управления и реализовать новое событие закрытия.Это решение пока подойдет, потому что мне нужно сделать только одно изменение поведения вкладок.Проблема в том, что в будущем мне может понадобиться расширить функциональность другим способом, и я не хочу расширять TabControl каждый раз, когда меняется запрос.
Также мне нужно сохранить поведение по умолчаниюTabItem (простое закрытие).
Может кто-нибудь указать мне на какое-нибудь оптимальное решение, которое можно легко расширять с помощью различных поведений, а также переносить в любом приложении .NET.
Спасибо.