c# - link - Cómo establecer un enlace en el Código?
html link title (2)
Prueba esto:
Binding myBinding = new Binding();
myBinding.Source = ViewModel;
myBinding.Path = new PropertyPath("SomeString");
myBinding.Mode = BindingMode.TwoWay;
myBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
BindingOperations.SetBinding(txtText, TextBox.TextProperty, myBinding);
Si especifica la path
(como lo hace en el constructor), su fuente debe ser solo ViewModel
, la parte .SomeString
se evalúa desde la ruta.
Tengo la necesidad de establecer un enlace en el código.
Parece que no puedo hacerlo bien, aunque.
Esto es lo que he intentado:
XAML:
<TextBox Name="txtText"></TextBox>
Código detrás:
Binding myBinding = new Binding("SomeString");
myBinding.Source = ViewModel.SomeString;
myBinding.Mode = BindingMode.TwoWay;
myBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
BindingOperations.SetBinding(txtText, TextBox.TextProperty, myBinding);
ViewModel:
public string SomeString
{
get
{
return someString;
}
set
{
someString= value;
OnPropertyChanged("SomeString");
}
}
La propiedad no se actualiza cuando lo configuro.
¿Qué estoy haciendo mal?
necesitas cambiar la fuente al objeto viewmodel:
myBinding.Source = viewModelObject;