如何将转换器参数传递到分层数据模板中



>我有两个相同的HierarchicalDataTemplate,除了用于ItemsSource属性的ConverterParameter

<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传递到。像这样的东西(带有参数占位符(:

<HierarchicalDataTemplate x:Key ="Template" 
ItemsSource="{Binding Converter ={StaticResource DemoConverter}, ConverterParameter={PARAMETER}">
...
</HierarchicalDataTemplate>

而且,在"消费"代码中,我会写类似的东西(使用另一个参数占位符(:

<TreeView ItemTemplate="{StaticResource ProjectTreeEditItem, PARAMETER=One}" ...></TreeView>    

<TreeView ItemTemplate="{StaticResource ProjectTreeEditItem, PARAMETER=Two}" ...></TreeView>    

如何实现这一点?一个合适的(虽然次优(解决方案是有两个引用一个通用模板的"包装器"模板(如果将参数设置为ItemTemplate定义的一部分是问题,则从那里设置参数(,但我也不知道该怎么做:o/

如何实现这一点?

通过使用XamlReader.Load方法或FrameworkElementFactory类以编程方式定义模板。请看我的回答 这里的例子:

在运行时合并数据模板

不能执行"将(静态(ConverterParameter传递到XAML 中的另一个模板"之类的操作。恐怕标记语言不支持这一点。

最新更新