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;
}
「if」のコードなしで foreach コードのみを実行すると、機能します。また、foreach を使用せずに「if」でのみコードを実行すると、それも機能します。しかし、一緒に (「if」コードと foreach コード) は機能しません。
なぜうまくいかないのかわかりません。2 つのテンプレートは次のようになります。
<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>
何が問題なのかわかる方いましたら教えてください。