我想更改 CodeBehind 文件中 ContentPresenter 的 ContentTemplate。但是,如果我运行 Silverlight 4 应用程序,则会发生带有错误代码 2260 的 XamlParseException。
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”中编写代码,它也可以工作。但是一起(“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>
如果您知道是什么问题,请告诉我。