2013-06-18 2 views
0

У меня есть класс Behavior для элемента списка.Silverlight MVVM Поведение не работает, когда элемент становится скрытым

public class DragAndDropBehavior : Behavior<AllocationItem> 
{ 
    protected override void OnAttached() 
    { 
     base.OnAttached(); 
     AssociatedObject.StartDrag += OnStartDrag; 
    } 

    protected override void OnDetaching() 
    { 
     base.OnDetaching(); 
     Cleanup(true); 
    } 
    // Some drag logic. 
} 

В этом поведении я двигаюсь пункт Предварительный просмотр на графике и прокрутите эту диаграмму, если необходимо. Когда я прокручиваю эту диаграмму, в один момент мой элемент перетаскивания исчезает из вида - это вне диапазона обзора. И в этот момент все обработчики не звонят. Любые предложения почему?

У меня есть обновления. Когда мой элемент скрывает огни OnDetaching() метод и все обработчики перетаскивания удаляют. Итак, вопрос chanches - Как игнорировать OnDetaching() на скрытие элемента?

ответ

0

Я решил эту проблему. Мои элементы, размещенные на пользовательской панели (диаграмме), и эта настраиваемая панель переопределила метод MeasureOverride (размер), в котором отсутствуют все элементы обновления и невидимые элементы из вида => Метод OnDetaching(). Я решил это, добавив флаг перетаскивания в мою настраиваемую панель и этим значением флага, которое я решаю, если мне нужно избавиться от невидимых элементов.

Смежные вопросы