<Grid>
<TextBlock Name="txtbTitle" FontSize="30" Text="{Binding Title}"></TextBlock>
<Button Name="btnChangeTitle" Content="改变标题" Click="btnChangeTitle_Click"></Button>
</Grid>
public MyBindData bd = new MyBindData { Title = "标题" };
public BindData()
{
this.InitializeComponent();
txtbTitle.DataContext = bd;
}
/// <summary>
/// 在此页将要在 Frame 中显示时进行调用。
/// </summary>
/// <param name="e">描述如何访问此页的事件数据。
/// 此参数通常用于配置页。</param>
protected override void OnNavigatedTo(NavigationEventArgs e)
{
}
private void btnChangeTitle_Click(object sender, RoutedEventArgs e)
{
bd.Title = "改变后的标题";
}
当更改Title属性时,必须实现属性更改的通知机制,需要实现 INotifyPropertyChanged接口, INotifyPropertyChanged具有 PropertyChanged事件。public class MyBindData:INotifyPropertyChanged
{
private string title;
public string Title
{
get
{
return title;
}
set
{
title = value;
OnPropertyChanged("Title");
}
}
//当属性更改时,会触发该事件
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}
}