-1
我有一个MultiBinding
定义如下:使用的资源绑定没有风格
<MultiBinding StringFormat="{0}_{1}">
<Binding Path="..." />
<Binding Path="..." />
</MultiBinding>
我需要在多个地方使用它,并希望在我的资源来定义它,如:
<MultiBinding x:Name="MyDefaultBinding" StringFormat="...">
<!-- etc -->
</MultiBinding>
但是,我现在无法弄清楚如何使用它。我尝试了StaticResource
,如:
<TextBlock Text="{StaticResource MyDefaultBinding}"
Style="{StaticResource SomeOtherStyle}" />
这给了我一个编译错误:“无效的资源类型:预测的类型是‘字符串’,实际类型是‘MultiBinding’。”。
当我试图用来访问它Binding
像:
<TextBlock Text="{Binding Source={StaticResource MyDefaultBinding}}"
Style="{StaticResource SomeOtherStyle}" />
它编译,但在运行时在TextBlock
文本设置为“System.Windows.Data.MultiBinding”代替期望值。
我见过建议,建议在Style
中包装MultiBinding
,但是我已经在控件上定义了其他共享样式,我需要使用该绑定。
我可以评估资源中定义的绑定而不将其包装在样式中吗?
我不认为这是可能的。不过,我认为你可以用你的新风格使用'BaseOn'扩展现有的样式。这样,你有一种风格与绑定和一个没有,但仍然有风格只编码一次。 – wkl