gpt4 book ai didi

c# - 从没有 key 的代码创建 XAML 资源

转载 作者:太空狗 更新时间:2023-10-29 20:19:08 25 4
gpt4 key购买 nike

有没有办法在不给资源键的情况下从代码向 ResourceDictionary 添加资源?

例如,我在 XAML 中有这个资源:

<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type xbap:FieldPropertyInfo}"
ItemsSource="{Binding Path=Value.Values}">
<TextBlock Text="{Binding Path=Name}" />
<HierarchicalDataTemplate>
</TreeView.Resources>

我需要通过代码动态创建此资源并将其添加到 TreeView ResourceDictionary。但是,在没有 Key 的 XAML 中意味着它默认用于所有 FieldPropertyInfo 类型。有没有一种方法可以在没有 key 的情况下将它添加到代码中的资源,或者有没有一种方法我可以使用一个 key 并仍然在所有 FieldPropertyInfo 类型上使用它?

到目前为止,这是我在 C# 中所做的事情:

HierarchicalDataTemplate fieldPropertyTemplate = new HierarchicalDataTemplate("FieldProperyInfo");

fieldPropertyTemplate.ItemsSource = new Binding("Value.Values");

this.Resources.Add(null, fieldPropertyTemplate);

显然,将资源添加到 ResourceDictionary 键 null 不起作用。

最佳答案

使用您希望模板应用的类型作为键:

HierarchicalDataTemplate fieldPropertyTemplate = new 
HierarchicalDataTemplate("FieldProperyInfo");

fieldPropertyTemplate.SetBinding(
HierarchialDataTemplate.ItemSourceProperty,
new Binding("Value.Values");
this.Resources.Add(FieldPropertyInfo.GetType(), fieldPropertyTemplate);

您的代码无法正常工作的原因是您实际上没有设置绑定(bind)。您需要使用您希望绑定(bind)绑定(bind)到的属性调用 SetBinding。

关于c# - 从没有 key 的代码创建 XAML 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/141007/

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