簡體   English   中英

如何以縮寫形式多次使用MultiBinding,而每個縮寫都有不同的ConverterParameter?

[英]How to use MultiBinding many times, in abbreviated form, each with different ConverterParameter?

我有一個名為PlacerIMultiValueConverter ,被這樣使用:

<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值。 我是否必須在每個RectangleCanvas.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM