Binding 数据驱动UI显示,给力
1. Binding 条件
(1)绑定目标必须是依赖属性(DP)
(2)绑定源 ViewModel需要实现INotifyPropertyChanged接口
2. 如何定义依赖属性
//图片背景色。
public static readonly DependencyProperty ImageBackgroundProperty =
DependencyProperty.Register("ImageBackground", typeof(string), typeof(ImageTitle));
public string ImageBackground
{
get { return (string)GetValue(ImageBackgroundProperty); }
set { SetValue(ImageBackgroundProperty, value); }
}
3. ViewModel 实现INotifyPropertyChanged接口
/// <summary>
/// View Model 基类
/// </summary>
public class BaseViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
virtual internal protected void OnPropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
public class CorrectQuestionModel : BaseViewModel
{
private int questionNum;
//题号
public int QuestionNum
{
get { return questionNum; }
set
{
if (value != questionNum)
{
questionNum = value;
OnPropertyChanged("QuestionNum");
}
}
}
}