コード ビハインドで contentcontrols テンプレートを xaml に設定すると、親 xaml に含まれる静的リソースにアクセスできません。
私は次のようなコンテンツコントロールを持っています:
<ContentControl x:Name="ccMaterial">
<ContentControl.Resources>
<x:Array x:Key="BondListKey" Type="sys:Int32"
xmlns:sys="clr-namespace:System;assembly=mscorlib" />
</ContentControl.Resources>
</ContentControl>
コードビハインドでは、テンプレートを次のように設定しています。
string template = "<ControlTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'>" +
"<ComboBox Grid.Column=\"1\" Grid.Row=\"0\" ItemsSource=\"{Binding Source={StaticResource BondListKey}}\" />" +
"</ControlTemplate>";
ccMaterial.Template = (ControlTemplate)XamlReader.Parse(template);
問題は、これを実行しようとすると、リソース「BondListKey」が見つからないという例外が発生することです。誰でも理由を説明できますか?
さらに情報が必要な場合はお知らせください。
ジョンのコメントに応えて:
タブ項目があり、フォームの別の場所でのユーザーの選択に基づいて、そのタブ内にさまざまなコントロールを表示できるようにしたいと考えています。例として、ユーザーが車を選択した場合、コントロール テンプレートを変更して、エンジンのサイズ、燃料の種類などのテキスト ボックスを含めたいと思います。ユーザーがオレンジを選択した場合、多様性と甘さを含むコントロール テンプレートが必要です。タブに可能なすべてのコントロールを描画し、データトリガーに基づいて関連するコントロールの表示/有効状態を変更することで、この機能を実現できると思いますが、これには多くのフィルターされたコントロールが含まれる可能性があります (多くのユーザー選択がある可能性があるため)種類 )。私が理想的にできることは、目的のコントロール テンプレートを文字列として提供し、解析してコントロールのテンプレートに割り当て、実行時にその内容を変更することです。
それが意味をなさない場合、または明確にする必要がある場合はお知らせください:)