Wpf 未使用PropertyChanged通知更新按钮内容
我只是想做的是,当用户点击按钮时,它的内容应该根据编码而改变。这是代码。我已经尝试了这两种方式,代码隐藏方式和XAML绑定方式。但它不起作用Wpf 未使用PropertyChanged通知更新按钮内容,wpf,button,binding,inotifypropertychanged,Wpf,Button,Binding,Inotifypropertychanged,我只是想做的是,当用户点击按钮时,它的内容应该根据编码而改变。这是代码。我已经尝试了这两种方式,代码隐藏方式和XAML绑定方式。但它不起作用 <Button x:Name="Header" Content="{Binding listHeader}" Click="HeaderClick"/> private string listHeader; public string ListHeader { get { return listHeader; } set
<Button x:Name="Header" Content="{Binding listHeader}" Click="HeaderClick"/>
private string listHeader;
public string ListHeader
{
get { return listHeader; }
set
{
listHeader = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("listHeader"));
}
}
}
public Calendar()
{
this.selectedDate = DateTime.Now;
this.ListHeader = selectedDate.ToString("MMMM");
}
private void HeaderClick(object sender, RoutedEventArgs e)
{
switch (StateOfList)
{
case StatesOfList.ListOfDates:
{
this.listHeader = selectedDate.Year.ToString();
this.StateOfList = StatesOfList.ListOfMonths;
}
break;
case StatesOfList.ListOfMonths:
{
this.FillList(ListDataTypes.Years);
this.StateOfList = StatesOfList.ListOfYears;
}
break;
case StatesOfList.ListOfYears:
{
}
break;
}
}
私有字符串列表头;
公共字符串列表头
{
获取{return listHeader;}
设置
{
listHeader=值;
if(PropertyChanged!=null)
{
PropertyChanged(这是新的PropertyChangedEventArgs(“listHeader”);
}
}
}
公历()
{
this.selectedDate=DateTime.Now;
this.ListHeader=selectedDate.ToString(“MMMM”);
}
私有void HeaderClick(对象发送方,路由目标)
{
开关(状态列表)
{
案例状态列表。列表日期:
{
this.listHeader=selectedDate.Year.ToString();
this.StateOfList=StatesOfList.ListOfMonths;
}
打破
案例状态列表。列表月份:
{
这个.FillList(ListDataTypes.Years);
this.StateOfList=StateOfList.ListOfYears;
}
打破
案例状态列表。年份列表:
{
}
打破
}
}
您最好使用属性名(ListHeader)而不是变量名(ListHeader)绑定内容。所以在代码中更改这两行
<Button x:Name="Header" Content="{Binding ListHeader}" Click="HeaderClick"/>
你给出的解决方案不起作用。我完全惊讶于它为什么不起作用。也做这个改变吧。this.ListHeader=selectedDate.Year.ToString();嘿一切正常。我的意思是我试着用visual studio调试它,我已经检查了属性的所有e值10次。当我点击它时,它的值也显示在2013年。但我不知道为什么它不呈现。我想我在回答中写这篇文章是为了用listHeader替换绑定中的listHeader。嘿,Nitesh,请帮助我。如果你愿意,我可以给你发文件。我不知道什么不起作用。帮助我。它不起作用。
PropertyChanged(this, new PropertyChangedEventArgs("ListHeader"));