[英]How to use MultiBinding many times, in abbreviated form, each with different ConverterParameter?
我有一个名为Placer
的IMultiValueConverter
,被这样使用:
<Rectangle Name="HostBox" Fill="#FFF4F4F5" Height="36" Stroke="Black" Canvas.Top="32"
Width="86" RadiusY="9.5" RadiusX="9.5">
<Canvas.Left>
<MultiBinding Converter="{StaticResource Placer}" ConverterParameter="0.5">
<Binding Path="ActualWidth" RelativeSource="{RelativeSource AncestorType={x:Type Canvas}}"/>
<Binding Path="Width" RelativeSource="{RelativeSource Self}"/>
</MultiBinding>
</Canvas.Left>
</Rectangle>
但是我有很多Rectangle
,我想在上面应用相同的逻辑,但是具有不同的ConverterParameter
值。 我是否必须在每个Rectangle
的Canvas.Left
附加属性下包含这个不太小的代码段? (反问的问题……显然有一种更聪明的方法……但是如何?)
尝试使用样式。 例如,以下代码适用于所有矩形实例,但您也可以给它一个键并将其分别应用于您的矩形:
<Style TargetType="Rectangle">
<Setter Property="Canvas.Left">
<Setter.Value>
<MultiBinding Converter="{StaticResource Placer}" ConverterParameter="0.5">
<Binding Path="ActualWidth" RelativeSource="{RelativeSource AncestorType={x:Type Canvas}}"/>
<Binding Path="Width" RelativeSource="{RelativeSource Self}"/>
</MultiBinding>
</Setter.Value>
</Setter>
</Style>
为了参数化
MultiBinding.ConverterParameter
您可以简单地使用绑定。
编辑:关于绑定到MultiBinding.ConverterParameter
我已得到纠正:由于这不是DependencyProperty
但是您可以解决它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.