@lasols
Студент, изучаю c#.

Как привязать TextBlock к свойству Author своего класса Player?

Имеем такой класс:

public class Player : INotifyPropertyChanged
{
    private string author;

    public Player()
    {

    }

    public string Author
    {
        set 
        { 
            author = value;
            OnPropertyChanged("Author");
        }
        get { return author; }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    private void OnPropertyChanged(string info)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(info));
        }
    }
}


Я хочу, чтобы при изменении свойства Author, изменялся текст TextBlock:
<TextBlock x:Name="tbAuthor" Text="{Binding DataContext.Author, ElementName=mainPage}" Margin="5" FontSize="14" Width="auto" Height="auto"/>


В конструкторе страницы с tbAuthor:
public Player Player { get; set; }

public MainPage()
{
    InitializeComponent();

    Player = new Player();
    Player.Author = "qwe";

    this.DataContext = Player;
}


Но tbAuthor не изменяется, также пробовал подобным способом:
MyData myDataObject = new MyData(DateTime.Now);
    Binding myBinding = new Binding("MyDataProperty");
    myBinding.Source = myDataObject;
    myText.SetBinding(TextBlock.TextProperty, myBinding);

Как указано на сайте Microsoft, результата так же нет.

UPD: Все работает правильно, ошибка в моем коде (тут для наглядности многое обрезал)
  • Вопрос задан
  • 50 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы