Чистый способ проверить, было ли изменено свойство объекта в списке?
Эй Codeproject,
У меня есть класс под названием UIControl, и я также сделал производный класс, такой как UIControlButton, UIControlImageBox. Я сохранил все это в списке "uicontrol".
Есть ли какой-нибудь способ проверить, были ли внесены какие-либо изменения в объекты в списке, которые не просто добавили или удалили объект?
Я действительно хочу убедиться, что нет более чистого способа проверить, были ли внесены какие-либо изменения, чем сравнивать все свойства каждый раз, когда они устанавливаются в каждом отдельном классе.
Итак, в двух словах, как я могу выяснить, изменились ли свойства объекта, не используя метод object. Equal, поскольку это сравнило бы, находится ли объект в одной и той же ячейке памяти, а также используя метод, который не требовал бы грязного метода, такого как проверка всех свойств для каждого метода непосредственно внутри самого объекта.
с уважением,
- ЭЦП.
Что я уже пробовал:
Я пробовал делать грязный метод, просто сравнивая один список с другим списком, один из которых содержит объекты, пока они не изменены, и тот, который может быть изменен, сравнивая эти объекты и в случае, если они отличаются, устанавливая старый элемент на новый элемент и вызывая событие, подобное этому:
public bool IsIdentical(UIControl Control, UIControl Other) { if(Control.GetType() != Other.GetType()) { return false; } if(!Control.Name.Equals(Other.Name)) { return false; } return false; }
Однако проблема заключается в том, что некоторые производные элементы управления имеют другие или несколько значений, и я не думаю, что это отличная идея-делать 100 перегрузок для каждого отдельного элемента управления.
#realJSOP
Вы используете WPF? И кстати, "контроль" - ужасное название для переменной. Используйте "ctrl" или что-то в этом роде.
Member 11841791
Очень конкретно я использую Monogame (альтернативу XNA.) Я работаю над движком пользовательского интерфейса, и мне нужно зарегистрироваться, когда были внесены изменения в элементы управления, чтобы сделать рисунок более эффективным в панелях. Примером изменений может служить размер элемента управления, текст в элементе управления,цвета и вперед.