Aggiungi DataBinding per proprietà collegata per codice dietro
-
03-07-2019 - |
Domanda
Voglio aggiungere un DataBinding per Codebehind per una Proprietà collegata e voglio mostrare la proprietà Canvas.Left
in una TextBox. Come aggiungo questa proprietà?
Soluzione
Non è abbastanza chiaro dalla tua domanda, ma penso che ti stia chiedendo come si legherebbe alla proprietà collegata Canvas.Left
e la mostri in una TextBox. Suppongo che lo desideri per un controllo diverso da TextBox.
<Canvas>
<TextBox x:Name="textBox" Text="{Binding ElementName=button, Path=(Canvas.Left)}" />
<Button x:Name="button" Content="Press me" />
</Canvas>
Nota le parentesi attorno alla proprietà allegata.
EDIT: Per fare l'equivalente nel codice, utilizzare quanto segue:
Binding binding = new Binding();
binding.Source = button;
binding.Path = new PropertyPath(Canvas.LeftProperty);
textBox.SetBinding(TextBlock.TextProperty, binding);
Altri suggerimenti
Sì, una tela non ha proprietà a sinistra. è una proprietà collegata per un FrameworkItem in un contenuto Canvas.
<Canvas Width="100" Height="100">
<TextBox Name="top" Canvas.Left="12"></TextBox>
</Canvas>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow