Tengo la necesidad de establecer un enlace en el código.
Aunque parece que no puedo hacerlo bien.
Esto es lo que he probado:
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 la configuro.
¿Qué estoy haciendo mal?
c#
wpf
xaml
data-binding
Willem
fuente
fuente

Necesita cambiar la fuente al objeto viewmodel:
fuente
Además de la respuesta de Dyppl , creo que sería bueno colocar esto dentro del
OnDataContextChangedevento:También hemos tenido casos en los que simplemente guardamos el
DataContextarchivo en una propiedad local y lo usamos para acceder a las propiedades del modelo de vista. La elección es, por supuesto, suya, me gusta este enfoque porque es más consistente con el resto. También puede agregar alguna validación, como verificaciones nulas. Si realmente cambia suDataContextentorno, creo que sería bueno llamar también:para borrar el enlace del modelo de vista antiguo (
e.oldValueen el controlador de eventos).fuente