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ć?