Is there a way to add a resource to a ResourceDictionary from code without giving it a resource key?
For instance, I have this resource in XAML:
<TreeView.Resources> <HierarchicalDataTemplate DataType='{x:Type xbap:FieldPropertyInfo}' ItemsSource='{Binding Path=Value.Values}'> <TextBlock Text='{Binding Path=Name}' /> <HierarchicalDataTemplate> </TreeView.Resources>
I need to create this resource dynamically from code and add it to the TreeView ResourceDictionary. However, in XAML having no Key means that it’s used, by default, for all FieldPropertyInfo types. Is there a way to add it to the resource in code without having a key or is there a way I can use a key and still have it used on all FieldPropertyInfo types?
Here’s what I’ve done in C# so far:
HierarchicalDataTemplate fieldPropertyTemplate = new HierarchicalDataTemplate('FieldProperyInfo'); fieldPropertyTemplate.ItemsSource = new Binding('Value.Values'); this.Resources.Add(null, fieldPropertyTemplate);
Obviously, adding a resource to the ResourceDictionary the key null doesn’t work.
Use the type that you want the template to apply to as the key:
The reason your code wasn’t working was your weren’t actually setting the binding. You need to call SetBinding, with the property you want the binding bound to.