Witajcie :) mam klasę X (implementującą interfejs) w której znajduje się lista klas X. Stworzyłem TemplateSelector wybierający Template w zależności od danych znajdujących się w DataContext. Niestety w środku Template

public class ConsoleMessage : NotifyPropertyChanged, INotifyPropertyChanged, IConsoleMessage
    {
        public ConsoleMessage()
        {
            MessageList = new ObservableCollection<IConsoleMessage>();
        }
       
        private IList<IConsoleMessage> messageList;
        public IList<IConsoleMessage> MessageList
        {
            get
            {
                return messageList;
            }
            private set
            {
                messageList = value;
                OnPropertyChanged("MessageList");
            }
        }
    }
<DataTemplate x:Key="ExpanderDisabled">
            <StackPanel>
                <ContentControl Template="{StaticResource ConsoleTextBlock}" DataContext="{Binding Path=Information.TextList}"/>
                <ItemsControl ItemsSource="{Binding Path=MessageList}" ItemTemplateSelector="{StaticResource MessageTypeSelector}"/>
            </StackPanel>
        </DataTemplate>
<SC:MessageTypeTemplateSelector 
            x:Key="MessageTypeSelector"
            NothingTemplate="{StaticResource Nothing}"
            MessageOnlyTemplate="{StaticResource MessageOnly}"
            ExpanderEnableTemplate="{StaticResource ExpanderEnabled}"
            ExpanderDisableTemplate="{StaticResource ExpanderDisabled}"/>
<DataTemplate x:Key="MainTemplate">
            <ItemsControl ItemsSource="{Binding Path=MessageList}" ItemTemplateSelector="{StaticResource MessageTypeSelector}"/>
        </DataTemplate>

Niestety w <DataTemplate x:Key="ExpanderDisabled"> otrzymuję błąd, że nie znaleziono podanego zasobu, ale w DataTemplate który jest "napisany" pod DataTemplateSelector już znajduje. jak można owy problem rozwiązać?

screenshot-20190214203855.png