c# - MVVM 基金会 : Assertion Failed Error: Invalid Property Name

标签 c# mvvm mvvm-foundation

我刚刚开始使用 MVVM Foundation。我得到了

alt text

我的代码如下:

启动 View 模型

class StartViewModel : ObservableObject
{
    public StartViewModel() {
        _counter = 0;
    }

    public ICommand IncrementCommand
    {
        get { return _incrementCommand ?? (_incrementCommand = new RelayCommand(() => ++Counter)); }
    }

    protected int Counter { 
        get { return _counter; } 
        set {
            _counter = value;
            base.RaisePropertyChanged("Counter");
        }
    }

    protected int _counter;
    protected RelayCommand _incrementCommand;
}

开始查看

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="50*" />
        <RowDefinition Height="250*" />
    </Grid.RowDefinitions>
    <Button Content="Increment" Grid.Row="0" Command="{Binding IncrementCommand}" />
    <TextBlock Padding="5" Text="{Binding Counter}" Grid.Row="1" />
</Grid>

代码有什么问题?当我尝试单击增量按钮时出现错误

最佳答案

在 RaisePropertyChanged 行上将基础更改为此。

基类没有一个叫Counter的属性

编辑:也许是因为您的属性(property)受到保护而不是公开

MVVM Foundation 的 ObservableObject 中的注释提到它正在验证公共(public)属性

关于c# - MVVM 基金会 : Assertion Failed Error: Invalid Property Name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3792100/

相关文章:

c# - 请求 'System.Web.AspNetHostingPermission"类型的权限

c# - 用于迭代关联值集的模式是什么?

android - 如何使用 LiveData、ViewModel 处理网络请求的状态并相应地更新 UI

android - 回调 Observable

wpf - 在 WPF 中创建可点击的图像

wpf - MVVM Light Toolkit - RelayCommands、DelegateCommands 和 ObservableObjects

c# - 在 .NET 3.0 中的 Worker Service 上运行 ASP.NET Core

c# - 指向非托管代码的 Int 指针

c# - 当对象的属性更改时,WPF 在父级上调用 updatesourcetrigger xaml

.net - WPF 运行时在引发 INotifyPropertyChanged 接口(interface)的 PropertyChanged 事件后究竟做了什么