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