Привязка данных занимает слишком много времени для обновления - PullRequest
0 голосов
/ 24 апреля 2010

В моем приложении у меня есть этот код в моей модели представления:

hiddenTextContainer.PreHideVerticalOffset = VerticalOffset;

            hiddenTextContainer.HiddenText = Text.Remove(SelectionStart, SelectionLength);
            hiddenTextContainer.HasHiddenText = true;
            hiddenTextContainer.NonHiddenTextStart = SelectionStart;
            Text = Text.Substring(SelectionStart, SelectionLength);           
            SelectionStart = Text.Length;

            hiddenTextContainer.ImmediatePostHideVerticalOffset = VerticalOffset;

Этот код используется, чтобы скрыть выделенный текст в текстовом поле.Text - это данные свойства строки, привязанные к свойству text текстового поля, а VerticalOffset - данные двойного свойства, связанные со свойством VerticalOffset этого же текстового поля.

Мне нужно сохранить VerticalOffset до и после скрытия выделенного текста, но с моим кодом ниже для hiddenTextContainer.PreHideVerticalOffset и hiddenTextContainer.ImmediatePostHideVerticalOffset всегда установлены одинаковые значения независимо от того, что.

Я понял, что это потому, что текст текстового поля не был обновлен к тому времени, когда код достигает: hiddenTextContainer.ImmediatePostHideVerticalOffset = VerticalOffset;

Можно ли как-нибудь это исправить?

1 Ответ

1 голос
/ 25 апреля 2010

Вероятно, свойство текста обновляется не слишком медленно, а в том, что измерение и расположение выполняются асинхронно. Я бы предложил явно вызвать Window.UpdateLayout (или аналогичный, в зависимости от контейнера, который нужно пересчитать).

Возможно, вам сначала потребуется сделать InvalidateArrange или InvalidateMeasure.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...