小编MyU*_*ame的帖子

PropertyMhanged在ViewModelBase中始终为null

我做了一个简单的例子来更好地理解MVVM模式.以下是示例解决方案的链接,因为它很难解释整个问题:http: //www.2shared.com/file/jOOAnacd/MVVMTestMyCopy.html

Employee模型(带Age属性)EmployeeViewModel,它包含Employee对象并Age在以下代码中更改其属性:

public int Age
{
    get { return _employee.Age; }
    set
    {
        if (value == _employee.Age)
            return;
        _employee.Age = value;
        NotifyPropertyChanged("Age");
    }
}
Run Code Online (Sandbox Code Playgroud)

EmployeeViewModel是从ViewModelBase具有标准INotifyPropertyCHanged代码的类继承的:

if (PropertyChanged != null)
{
    PropertyChanged(this, new PropertyChangedEventArgs(p));
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用ICommand来改变员工的年龄:

public void Increase()
{
    this.SelectedEmployee.Age++;
    NotifyPropertyChanged("Age");
}
Run Code Online (Sandbox Code Playgroud)

属性已更改,但绑定的TextBLock不会更改其值.我查了一下,发现NotifyPropertyChanged被调用,但是PropertyChangednull.我还确保PeopleViewModel我的应用程序中只有一个.那么,为什么是PropertyChanged就是null

编辑:这是完整的代码ViewModelBase:

public class ViewModelBase
{

    public String …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml binding mvvm

7
推荐指数
1
解决办法
9721
查看次数

标签 统计

binding ×1

c# ×1

mvvm ×1

wpf ×1

xaml ×1