我想创建一个 MultiDataTrigger。在其中一种情况下,我需要使用转换器。由于它只在那里使用,我不想将转换器定义为资源,而只在本地使用它。
所以我做了这个MultiDataTrigger:
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="Property1" Value="Value1" />
<Condition ... />
</MultiDataTrigger.Conditions>
<Setter Property="SomeProp" Value="SomeVal"/>
</MultiDataTrigger>
以及此绑定以避免将转换器定义为资源(基于https://stackoverflow.com/a/2304330/5333340):
<Binding Path="Property2">
<Binding.Converter>
<converterNamespace:MyConverter/>
</Binding.Converter>
</Binding>
并将这两部分放在一起:
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="Property1" Value="Value1" />
<Condition Value="Value2">
<Binding Path="Property2"> <!-- Compiler -->
<Binding.Converter> <!-- does -->
<converterNamespace:MyConverter/> <!-- not -->
</Binding.Converter> <!-- like -->
</Binding> <!-- this! -->
</Condition>
</MultiDataTrigger.Conditions>
<Setter Property="SomeProp" Value="SomeVal"/>
</MultiDataTrigger>
但编译器抱怨:“类型'条件'不支持直接内容。” (原文:“Der Typ 'Condition' unterstützt keine direkten Inhalte。”)
有没有办法让 MultiDataTrigger 工作而无需将转换器定义为资源?