Невозможно связать элемент anObject с помощью текстового блока с помощью x: Bind - PullRequest
0 голосов
/ 25 мая 2018

имя.области связано с TextBlock.Код в XAML

<StackPanel Background="Gray" Orientation="Vertical">
<TextBlock Text="{x:Bind obl.name, Mode=TwoWay}" Foreground="Aquamarine" />
<Button Content="click" Click="Button_Click"/>
</StackPanel>

Код в .Cs файле

public MainPage()
    {
        this.InitializeComponent();
        obl = new Class1();
        DataContext = obl;
    }
    public Class1 obl { get; set; }
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        obl.name = "haiiii";
    }

class1

public class Class1
{
    public string name { get; set; }
}

Связанное значение не отображается в пользовательском интерфейсе.почему?

1 Ответ

0 голосов
/ 27 мая 2018

Если вы хотите связать некоторый текст в свойстве, которое class1 должно реализовать интерфейс INotifyPropertyChanged и установить измененное свойство.

public class Class1 : INotifyPropertyChanged
{
    private string _name;

    public string name
    {
        get => _name;
        set
        {
            _name = value;
            OnPropertyChanged();
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    [NotifyPropertyChangedInvocator]
    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

Но как свойство, свойство name должнобыть названным Name для PascalCasing.

Thx @ thezapper

...