Имеем такой класс:
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: Все работает правильно, ошибка в моем коде (тут для наглядности многое обрезал)