我有两个HierarchicalDataTemplate
相同,除了用于ConverterParameter
属性的ItemsSource
:
<HierarchicalDataTemplate x:Key ="Template1"
ItemsSource="{Binding Converter ={StaticResource DemoConverter}, ConverterParameter='One'}">
...
</HierarchicalDataTemplate>
<HierarchicalDataTemplate x:Key ="Template2"
ItemsSource="{Binding Converter ={StaticResource DemoConverter}, ConverterParameter='Two'}">
...
</HierarchicalDataTemplate>
如何避免冗余(在上面被...
取代)?我只希望有一个模板可以传递(静态)ConverterParameter
。这样的东西(带有 PARAMETER 占位符):
<HierarchicalDataTemplate x:Key ="Template"
ItemsSource="{Binding Converter ={StaticResource DemoConverter}, ConverterParameter={PARAMETER}">
...
</HierarchicalDataTemplate>
然后,在“使用”代码中,我将编写类似(使用另一个 PARAMETER 占位符)的内容:
<TreeView ItemTemplate="{StaticResource ProjectTreeEditItem, PARAMETER=One}" ...></TreeView>
或
<TreeView ItemTemplate="{StaticResource ProjectTreeEditItem, PARAMETER=Two}" ...></TreeView>
如何实现?合适的(虽然不是最佳的)解决方案是拥有两个引用一个公共模板的“包装器”模板(如果在问题中将参数设置为ItemTemplate
的一部分,则从那里设置参数),但是我也不知道该怎么做:o /
答案 0 :(得分:0)
如何实现?
通过使用| IDClient | Name | IDClient | IDState | Name | IDBillState | AllowModify |
|----------|------|----------|---------|--------|-------------|-------------|
| 1 | John | 1 | 2 | Bill 2 | 2 | 1 |
| 2 | Jane | NULL | NULL | NULL | NULL | NULL |
方法或XamlReader.Load
类以编程方式定义模板 。请在此处查看我的答案以获取示例:
Combining DataTemplates at runtime
您无法执行“将(静态)FrameworkElementFactory
”传递给XAML中的另一个模板的操作。恐怕标记语言不支持此功能。