Я хотел бы изменить ContentTemplate ContentPresenter в файле CodeBehind.Но если я запускаю приложение Silverlight 4, возникает исключение XamlParseException с кодом ошибки 2260.
foreach (ContentPresenter item in Headers)
{
item.ContentTemplate = Parent.UnselectedHeaderTemplate;
}
if ((index >= 0) && (index < Headers.Count))
{
ContentPresenter item0 = (ContentPresenter)Headers[index];
item0.ContentTemplate = Parent.SelectedHeaderTemplate;
}
Если я выполняю только код foreach без кода в «if», это работает.И если я только делаю код в «если» без foreach, он тоже работает.Но вместе (код if и код foreach) это не работает.
Я понятия не имею, почему это не работает.Два шаблона выглядят так:
<Setter Property="UnselectedHeaderTemplate">
<Setter.Value>
<DataTemplate>
<ContentControl Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}"
Margin="10,-10"
FontSize="72"
Foreground="#FF999999"
CacheMode="BitmapCache"/>
</DataTemplate>
</Setter.Value>
</Setter>
<!-- SelectedHeader template -->
<Setter Property="SelectedHeaderTemplate">
<Setter.Value>
<DataTemplate>
<ContentControl Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}"
Margin="10,-10"
FontSize="72"
Foreground="{TemplateBinding Foreground}"
CacheMode="BitmapCache"/>
</DataTemplate>
</Setter.Value>
</Setter>
Если у вас есть идея, в чем проблема, скажите, пожалуйста.