2 Propiedades en Uno vinculante?
-
04-10-2019 - |
Pregunta
¿Puedo combinar 2 elementos en una biding?
<Canvas>
<Ellipse Fill="Black" x:Name="dot1" Width="16" Height="16" Canvas.Left="124" Canvas.Top="133"/>
<Ellipse Fill="Black" x:Name="dot2" Width="16" Height="16" Canvas.Left="221" Canvas.Top="40"/>
<Line Stroke="Black" x:Name="line1"
X1="{Binding ElementName=dot1, Path=(Canvas.Left)}"
Y1="{Binding ElementName=dot1, Path=(Canvas.Top)}"
X2="{Binding ElementName=dot2, Path=(Canvas.Left)}"
Y2="{Binding ElementName=dot2, Path=(Canvas.Top)}"
/>
</Canvas>
Necesito no sólo para unir los puntos de la línea de inicio y fin de los puntos izquierdo y derecho , pero la adición de ( Left + Width / 2
) y ( Top + Height / 2
) (centros).
¿Es posible?
Solución
Sí, utilizar un MultiBinding
y aplicar la fórmula en una IMultiValueConverter
.
Editar
Algo como esto donde sólo X1 utiliza el MultiBindingand el resto son sin cambios.
<Canvas>
<Ellipse Fill="Black" x:Name="dot1" Width="16" Height="16" Canvas.Left="124" Canvas.Top="133"/>
<Ellipse Fill="Black" x:Name="dot2" Width="16" Height="16" Canvas.Left="221" Canvas.Top="40"/>
<Line Stroke="Black" x:Name="line1"
Y1="{Binding ElementName=dot1, Path=(Canvas.Top)}"
X2="{Binding ElementName=dot2, Path=(Canvas.Left)}"
Y2="{Binding ElementName=dot2, Path=(Canvas.Top)}">
<Line.X1>
<MultiBinding Converter="{StaticResource myMultiValueConverter}">
<Binding Path="(Canvas.Top)"/>
<Binding Path="(Canvas.Left)"/>
</MultiBinding>
</Line.X1>
</Line>
</Canvas>
Otros consejos
Se puede unir a varias propiedades utilizando un MultiBinding .
Hay varios ejemplos y tutoriales en esta ahí fuera - por ejemplo, este y esta parece que le diga lo que necesita saber.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow