【问题标题】:Button content not updated with PropertyChanged Notifications未使用 PropertyChanged 通知更新按钮内容
【发布时间】:2013-07-22 04:22:46
【问题描述】:

我只是想做的是,当用户点击按钮时,其内容应该根据编码而改变。这是代码。我已经尝试了两种方式,代码隐藏方式和 XAML 绑定方式。但它不起作用。

<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;                
    }
}

【问题讨论】:

    标签: wpf button binding inotifypropertychanged


    【解决方案1】:

    您最好将您的内容与属性名称 (ListHeader) 而非变量名称 (listHeader) 绑定。所以在你的代码中改变这两行。

    <Button x:Name="Header" Content="{Binding ListHeader}"  Click="HeaderClick"/>
    

    PropertyChanged(this, new PropertyChangedEventArgs("ListHeader"));
    

    【讨论】:

    • 您提供的解决方案不起作用。我很惊讶为什么它不工作。
    • 也进行此更改。 this.ListHeader = selectedDate.Year.ToString();
    • 嘿!一切正常。我的意思是我尝试使用 Visual Studio 对其进行调试,并且我已经检查了 10 次属性的所有 e 值。当我单击 时,它的值也显示为 2013。但我不知道为什么它不渲染。
    • 我想我在回答中写了这个,用 ListHeader 替换绑定中的 listHeader。
    • 嘿 Nitesh,请帮帮我。如果你愿意,我可以给你发文件。我不知道什么不起作用。帮我。它不工作。
    猜你喜欢
    • 1970-01-01
    • 2012-09-12
    • 2017-02-17
    • 1970-01-01
    • 2022-01-02
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多