Я хочу создать пользовательский «Wizard» -Control.ItemsControl - Custom ItemContainer
Итак, я получил «Мастер» из Селектора и создал «WizardPage», полученный из HeaderedContentControl. Все работает отлично, когда я добавляю «WizardPages» непосредственно к самому «Мастере».
В Код: Это работает
<ctrl:Wizard>
<ctrl:WizardPage Header="Page 1" Content="Some Stuff" />
</ctrl:Wizard>
Тогда я подумал: Эй, это было бы здорово, если вы можете положить случайные вещи в содержании мастера и в случае необходимости он создает оболочку вокруг нее, так же, как ListBox с ListBoxItems (мне определенно нужна оболочка, потому что WizardPage нуждается в свойствах «CanLeavePage» и «AlreadyVisited»).
В Код: Я хочу, что это работает (группы список любой другой, который я могу шаблон где-WizardPage)
<ctrl:Wizard ItemsSource="{Binding Groups}" />
Так что я пробовал:
protected override bool IsItemItsOwnContainerOverride(object item)
{
return item is WizardPage;
}
protected override DependencyObject GetContainerForItemOverride()
{
return new WizardPage();
}
Когда я установить точки останова по этим двум методам я вижу, что IsItemItsOwnContainer вызывается, но GetContainerForItemOverride никогда не вызывается.
Что мне здесь не хватает?
Концепция выглядит следующим образом:
Ваш подход кажется прекрасным для меня, и я не вижу проблемы. Так в чем же проблема? Является ли картина не тем, что вы хотите? Как выглядит ваша WizardPage? В коде и в xaml. Есть ли у него контент? Вы переопределили стиль по умолчанию как для вашего элемента управления, так и для вашего контейнера? Использование [snoop] (http://snoopwpf.codeplex.com/) - отличная помощь в поиске ошибок с элементами вида в wpf. – dowhilefor
WizardPage - это только HeaderedContentControl с некоторыми дополнительными свойствами. – Jens
Моя проблема в том, что ItemsContainerGenerator не генерирует элементы. – Jens