¿Por qué el valor enlazado no se muestra en el TextBlock?
Intento vincular una cadena a la propiedad Text del TextBlock, pero el valor no se muestra en mi vista.
xaml:
<textblock margin="10,0" datacontext="{Binding UpgradeViewModel, Source={StaticResource Locator}}">
<run text="Other features: " fontweight="Bold"></run>
<run text="{Binding UpgradeViewModel.AdditionalSelectedLevelData, Source={StaticResource Locator},
Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"></run>
</textblock>
modelo de vista:
private string additionalSelectedLevelData;
public string AdditionalSelectedLevelData
{
get => additionalSelectedLevelData;
set
{
Set(ref additionalSelectedLevelData, value);
Debug.WriteLine(value);
}
}
Los valores de cambio de propiedad los compruebo utilizando Debug.WriteLine(value);
.
Tengo una implementación para INotifyPropertyChanged (Set(ref additionalSelectedLevelData, value);
), establezco el modo de enlace en TwoWay y establezco UpdateSourceTrigger=PropertyChanged.
Intento agregar un TextBox y vincular su propiedad Text con el mismo valor de cadena, y obtengo el mismo resultado, pero cuando escribo en el cuadro de texto, la cadena se muestra en el TextBlock y en el TextBox. No tengo ideas. La ruta de enlace es correcta al 100%.
davy.ai
Parece que el problema se encuentra en el código XAML. Es posible que desee asegurarse de que el DataContext esté configurado correctamente y que la ruta de enlace también sea correcta.
En lugar de configurar el DataContext en el elemento TextBlock, intente configurarlo en el nivel del elemento padre y ajuste la ruta de enlace en consecuencia:
XAML:
Esto asegurará que el DataContext se establezca correctamente y que la ruta de enlace sea correcta.
Otra cosa para verificar es si hay algún estilo o plantilla aplicada al TextBlock que pueda estar ocultando el texto.
Si el problema persiste, es posible que desee intentar depurar el XAML utilizando herramientas como Snoop o WPF Inspector para ver si hay algún problema con el árbol visual.