C# 例程中的WPF错误

C# 例程中的WPF错误,c#,wpf,C#,Wpf,直到一小时前测试时,我才发现这个子程序代码(见下文)工作正常 通知属性更改(()=>测试结果);触发错误: “无法将lambda表达式转换为类型‘string’,因为它不是委托类型” 我在谷歌上搜索过,大多数解决方案都建议添加“usingsystem.Linq”。我已经做到了这一点以及“使用System.Data.Entity”。这两个选项在VisualStudio中都显示为灰色,表示未使用它们,并且错误仍然存在 我对使用WPF链接到子例程还不熟悉,所以我不完全确定它在做什么,但正如我所说的,它

直到一小时前测试时,我才发现这个子程序代码(见下文)工作正常

通知属性更改(()=>测试结果);触发错误:

“无法将lambda表达式转换为类型‘string’,因为它不是委托类型”

我在谷歌上搜索过,大多数解决方案都建议添加“usingsystem.Linq”。我已经做到了这一点以及“使用System.Data.Entity”。这两个选项在VisualStudio中都显示为灰色,表示未使用它们,并且错误仍然存在

我对使用WPF链接到子例程还不熟悉,所以我不完全确定它在做什么,但正如我所说的,它工作得很好,我还有一个类似的程序,没有错误。两者都有相同的引用和用法,而我的另一个程序甚至没有“using System.Linq”

我肯定我错过了一些愚蠢的东西。谢谢

  public string TestResults
    {
        get { return _testResults; }

        set
        {
            _testResults = value; 
            NotifyOfPropertyChange(() => TestResults);
        }
    }

看起来您实现了接口INotifyPropertyChanged,并且应该通过提供属性的名称来触发PropertyChanged事件。所以我想您可以调用NotifyOfPropertyChange(“TestResults”),它就可以工作了

显然,
NotifyOfPropertyChange
采用字符串而不是lambda表达式(注意
()=>
)?)。您应该传递什么作为值?更改属性的名称?请尝试添加System.Linq.Expressions据我所知,我会像在代码中一样传递它。正如我所说,它工作得很好。我还添加了System.Linq.Expressions,错误更改告诉我需要添加System.Linq.Expressions.Expressions。这没有任何意义。你能发布
NotifyOfPropertyChange
方法吗?如果我单击Go To Definition,我会得到以下结果:public virtual void NotifyOfPropertyChange(string propertyName=null);我尝试了这个方法,但我得到一个错误,告诉我添加对System.Linq.Expressions的引用,但我已经有了一个用于该方法的方法,并且它不能作为引用添加。