Pregunta

Quiero agregar un DataBinding per Codebehind para una propiedad adjunta y quiero mostrar la propiedad Canvas.Left en un TextBox. ¿Cómo agrego esta propiedad?

¿Fue útil?

Solución

No queda claro de tu pregunta, pero creo que estás preguntando cómo se podría unir a la propiedad adjunta Canvas.Left y mostrarla en un TextBox. Asumiré que lo desea para un control que no sea el TextBox.

<Canvas>
   <TextBox x:Name="textBox" Text="{Binding ElementName=button, Path=(Canvas.Left)}" />
   <Button x:Name="button" Content="Press me" />
</Canvas>

Note los corchetes alrededor de la propiedad adjunta.

EDITAR: Para hacer el equivalente en código, usa lo siguiente:

Binding binding = new Binding();
binding.Source = button;
binding.Path = new PropertyPath(Canvas.LeftProperty);
textBox.SetBinding(TextBlock.TextProperty, binding);

Otros consejos

Sí, un lienzo no tiene propiedad izquierda. es una propiedad adjunta para un FrameworkItem en un Contenido de Canvas.

<Canvas Width="100" Height="100">
   <TextBox Name="top" Canvas.Left="12"></TextBox>
</Canvas>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top