У меня есть элемент управления, расширяющий PropertyGrid, который позволяет пользователям устанавливать свойства некоторых объектов моей программы. У этих объектов есть событие, которое вызывается при изменении одного из их свойств, и PropertyGrid подписывается на это событие, так что оно обновляется при изменении свойства. Моя проблема возникает, когда выбрано большое количество объектов, и пользователь устанавливает свойство для всех объектов одновременно. Элемент управления забивается запросами Refresh (), которые занимают много времени (например, установка свойства для ~ 300 объектов занимает около 20 секунд с включенной функцией автообновления и всего лишь долю секунды при его включении). выкл).
Я бы не хотел, чтобы обработчик событий обновлял сетку, пока сетка свойств находится в процессе установки свойства, но, к сожалению, я не смог найти никакого способа определить, когда сетка "запускается" и " останавливается "установка собственности. Я надеялся, что найдутся методы или что-то, что я мог бы переопределить, например ...
override void OnSetPropertyStart()
{
suppressRefresh = true;
}
override void OnSetPropertyEnd()
{
suppressRefresh = false;
}
К сожалению, это не так. Есть ли другой способ определить, когда сетка свойств задает свойство, или иным образом добиться того же эффекта?