linebreakmode etiquetas change c# xamarin xamarin.forms

c# - etiquetas - Xamarin.Forma unión simple a Label TextProperty



xamarin forms label text alignment (1)

Debe configurar el BindingContext de la etiqueta:

red.BindingContext = _todoItem;

Soy nuevo en Xamarin.Formas y el concepto vinculante. ¿Puede alguien decirme por qué esto no funciona? El nombre del objeto en sí está cambiando cuando presiono el botón. ¿Por qué no se actualiza el Text-property?

var red = new Label { Text = todoItem.Name, BackgroundColor = Color.Red, Font = Font.SystemFontOfSize (20) }; red.SetBinding (Label.TextProperty, "Name"); Button button = new Button { Text = String.Format("Tap for name change!") }; button.Clicked += (sender, args) => { _todoItem.Name = "Namie " + new Random().NextDouble(); };

El todoItem es un objeto de la clase a continuación. La notificación en sí funciona, estoy casi seguro. Supongo que hay algo mal con mi encuadernación, o me falta algo con este concepto.

public class TodoItem : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; string _name; public string Name { get { return _name; } set { if (value.Equals(_name, StringComparison.Ordinal)) { // Nothing to do - the value hasn''t changed; return; } _name = value; OnPropertyChanged(); } } void OnPropertyChanged([CallerMemberName] string propertyName = null) { var handler = PropertyChanged; if (handler != null) { handler(this, new PropertyChangedEventArgs(propertyName)); } } }