2

私はフォイルローイングxamlをロードしようとしています:

<HierarchicalDataTemplate ItemsSource="{Binding Items}">
    <CheckBox Checked="CheckBox_Checked" Tag="{Binding Champ1}" Unchecked="CheckBox_Unchecked">
        <CheckBox.Template>
            <ControlTemplate>
                <TextBlock Background="{Binding Path=Background, RelativeSource={RelativeSource AncestorType=CheckBox}}" Text="{Binding Champ1}" />
            </ControlTemplate>
        </CheckBox.Template>
    </CheckBox>
</HierarchicalDataTemplate>

私のツリービューのコンストラクターでこれを使用します:

string template = "<HierarchicalDataTemplate ItemsSource=\"{Binding Items}\">" +
                    "<CheckBox Checked=\"CheckBox_Checked\"" +
                              " Tag=\"{Binding Champ1}\"" +
                              " Unchecked=\"CheckBox_Unchecked\">" +
                        "<CheckBox.Template>" +
                            "<ControlTemplate>" +
                                "<TextBlock Background=\"{Binding Path=Background," +
                                                                "RelativeSource={RelativeSource AncestorType=CheckBox}}\"" +
                                           "Text=\"{Binding Champ1}\" />" +
                            "</ControlTemplate>" +
                        "</CheckBox.Template>" +
                    "</CheckBox>" +
               " </HierarchicalDataTemplate>";

this.ItemTemplate = (HierarchicalDataTemplate)XamlReader.Parse(template);

次のエラーが表示されます。

'Impossible de créer le type inconnu 'HierarchicalDataTemplate'.' numéro de ligne '1' et position de ligne '2'.

(私のマシンはフランス語で構成されています。このメッセージは、「不明なタイプの HierarchicalDataTemplate を作成できません」という意味です)。

誰かが理由を知っていますか?xaml スニペットは、xaml ファイルに直接記述すると完全に機能します。

ありがとう !


編集

シンプルなバージョンでテストしました:

string template = "<HierarchicalDataTemplate ItemsSource=\"{Binding Items}\">" +
                                "<TextBox Text=\"Test\"/>"+
                            " </HierarchicalDataTemplate>";

そして問題は同じです。


編集2

問題はより広く、「HierarchicalDataTemplate」とは無関係のようです

string test = "<TextBox Text=\"Test\" />";
var ret = XamlReader.Parse(test);

同じエラーが発生します...

4

2 に答える 2

2

イベント ハンドラーXamlReaderは、XAML のコード ビハインドに配置する必要があるため、使用できません。これは、解析された XAML には明らかに存在しません。

于 2013-04-23T18:04:50.310 に答える