gpt4 book ai didi

XamlReader.Parse 似乎没有使用 HierarchicalDataTemplate

转载 作者:行者123 更新时间:2023-12-02 17:44:55 27 4
gpt4 key购买 nike

我正在尝试加载 foillowing 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>

在我的 TreeView 的构造函数中使用它:

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);

产生同样的错误...

最佳答案

好的,我找到了问题。

作为John Bowen说吧,第一个问题是无法处理的事件处理程序。第二个问题是 xaml 中缺少主命名空间。

所以这段代码有效:

string template = "<HierarchicalDataTemplate  xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" ItemsSource=\"{Binding Items}\">" +
"<CheckBox Tag=\"{Binding Champ1}\" >" +
"<CheckBox.Template>" +
"<ControlTemplate>" +
"<TextBlock Background=\"{Binding Path=Background," +
"RelativeSource={RelativeSource AncestorType=CheckBox}}\"" +
" Text=\"{Binding Champ1}\" />" +
"</ControlTemplate>" +
"</CheckBox.Template>" +
"</CheckBox>" +
" </HierarchicalDataTemplate>";

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

关于XamlReader.Parse 似乎没有使用 HierarchicalDataTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16175038/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com