我的MainPage中有一个Textblock项,它绑定了一个myClass对象的值。我也有一个改变这个对象的属性值的按钮。虽然在点击按钮并实现接口时更新值,但所表示的值不会改变。这里是我的代码:Windows Phone:数据绑定不会更新接口中的值
public class myClass : INotifyPropertyChanged
{
//Fields declaration <---------------------------------------------------->
private int lifetime;
private DateTime startingDate;
private string brand;
private double power;
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(String info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
public int Lifetime {
get
{
return lifetime;
}
set
{
if (value != lifetime)
{
lifetime = value;
NotifyPropertyChanged("Lifetime");
}
}
}
public DateTime StartingDate {
get
{
return startingDate;
}
set
{
if (value != startingDate)
{
startingDate = value;
NotifyPropertyChanged("StartingDate");
}
}
}
public string Brand
{
get
{
return brand;
}
set
{
if (value != brand)
{
brand = value;
NotifyPropertyChanged("Brand");
}
}
}
public double Power
{
get
{
return power;
}
set
{
if (value != power)
{
power = value;
NotifyPropertyChanged("Power");
}
}
}
public int DaysRemaining
{
get
{
return Lifetime - (DateTime.Now - StartingDate).Days;
}
}
//Functions declaration <------------------------------------------------>
public ContactLens()
{
StartingDate = new DateTime();
}
}
和改变startingDate
价值,并因此应改变DaysRemaining
值太大按钮功能。
private void leftButtonChange_Click(object sender, RoutedEventArgs e)
{
Model.Left.StartingDate = DateTime.Now;
}
private void rightChangeButton_Click(object sender, RoutedEventArgs e)
{
Model.Right.StartingDate = DateTime.Now;
}
编辑: 我创建了更新日期和计算再次DaysRemaining
但仍然是一个方法,但绑定到StartingDate
变化的文本块看重DaysRemaining
值要求的应用程序的重新启动进行更改:
private void leftButtonChange_Click(object sender,RoutedEventArgs e) { Model.Left.Replace();
}
private void rightChangeButton_Click(object sender, RoutedEventArgs e)
{
Model.Right.Replace();
}
和主类功能:
public void Replace()
{
MessageBox.Show("" + daysRemaining);
StartingDate = DateTime.Now;
UpdateDaysRemaining();
MessageBox.Show("" + daysRemaining);
}
什么叫Lifetime改变? – 2014-09-26 17:41:04
你需要绑定到一个属性。 – 2014-09-26 19:16:34