среда, 6 января 2010 г.

Шаблон и экземпляры

Делаю custom control из Canvas.
Пытаюсь определить контекстное меню в xaml


получаю исключение при попытке создать экземпляр контрола:

"Невозможно добавить содержимое типа \"System.Windows.Controls.ContextMenu\" к объекту типа \"System.Object\". Ошибка объекта \"System.Windows.Controls.ContextMenu\" в файле разметки \"Design.Dui;component/src/BlocksContainerCanvas.xaml\", строка 13, позиция 18."

Спасибо MxKazan, который открыл мне глаза на форуме RSDN.
Итак проблема в невозможность копирования экземпляров не freezable классов (обратите внимание, что применение таким образом кисти не вызывает проблем - кисть является freezable). То есть, если шаблон будет иметь определение экземпляра такого класса, то такой шаблон нельзя будет применить к нескольким контролам, так как он не будет реплицироваться.

Возможно более понятно проблема изложена здесь и здесь.

Правда пока не ясно, что с этим делать :)

Комментариев нет: