OnPropertyChanged上出现“找不到属性Get方法”错误

时间:2016-05-12 06:36:28

标签: c# observablecollection

我收到错误

  

其他信息:调用OnPropertyChanged时未找到属性Get方法。

我的想法是,ListView有多个要选择的项目和SelectionMode="Multiple"。每次在ListView中点击某个项目时,我都要将其添加到ObservableCollection<Inspection>

暂时我这样做:

的Xaml:

<ListView x:Name="Reports"
                  Margin="0,5,0,0"
                  RelativePanel.Below="ListViewHeader"
                  SelectionMode="Multiple"
                  ItemsSource="{Binding inspectionCatalogSingleton.Inspections}"
                  SelectedItem="{Binding SelectedInspections, Mode=TwoWay}">
</ListView>

视图模型:

public ReportViewModel()
{
    _selectedInspections = new ObservableCollection<Inspection>();
}

private ObservableCollection<Inspection> _selectedInspections; 
public Inspection SelectedInspections
{
    set
    {
        _selectedInspections.Add(value);
        OnPropertyChanged();
    }
} 

/*....*/

public event PropertyChangedEventHandler PropertyChanged;

[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
    PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}

我在属性的设置部分设置了一个断点并且它输入正常但是当我点击继续时,错误在这一行上升:

PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));

我在这里做错了什么?

1 个答案:

答案 0 :(得分:3)

由于OnPropertyChanged将指示wpf更新所有引用的Bindings,因此需要一种方法来获取Property的值。

您在Property SelectedInspections上缺少一个Getter。 这就是您收到此异常/错误消息的原因。