我遇到了VS Designer的这个问题,无法使用它。 它发生的是我正在编辑我的XAML代码,VS Designer会在某些时候抛出异常,使用这样的StackTrace:
InvalidOperationException:属性“MyObject.MyProperty”没有get方法
堆栈跟踪:
at Microsoft.Expression.DesignModel.Metadata.LocalClrPropertyImplementation.GetValue(Object target) 在Microsoft.Expression.DesignModel.Metadata.ClrPropertyReferenceStep.GetValue(Object valueToInspect) at Microsoft.Expression.DesignModel.Metadata.PropertyReference.TryGetValue(Object& value,ReferenceStep referenceStep,Object target) 在Microsoft.Expression.DesignModel.Metadata.PropertyReference.PartialGetValue(Object target,Int32 initialStepIndex,Int32 finalStepIndex) 在[...]
......至少还有50行。
有问题的财产是这样的:
private bool _MyProperty = true;
public bool MyProperty
{
set
{
if (_MyProperty != value)
{
// Do a few things here
this._MyProperty = value;
}
}
}
现在,这很好用,我的项目中有很多这样的东西,VS以前从未打扰过我。 如果我再次尝试关闭并打开VS,它会让我工作一段时间,然后它最终会再次开始抛出这些错误。
我尝试从编译中清除解决方案>清洁解决方案,它不起作用。
我真的不知道这里有什么问题。 我的意思是,我在2个月前创建了这个属性,为什么VS现在只告诉我这个?
是否有解决方法,或者我是否必须在我创建的每个参数中手动添加所有这些无用的get / set方法?
答案 0 :(得分:1)
根据您的错误消息,我认为这很明显:" The Property" MyObject.MyProperty"没有get方法",您必须通过访问MyObject.MyProperty某处使用MyProperty,您需要检查, 还有一种方法是,如果你不想在本课程之外公开MyProperty,你应该使用私人套装,你真的很奇怪,你没有当你有一个公共二传手时,希望可以给你一些帮助
答案 1 :(得分:0)
我使用只写属性(定义为只写)来体验Windows窗体设计器故障(VS 2015)。我只能通过使属性读写(set / get)来重新显示表单。
我没有把它变成一种方法的唯一原因是我需要的是"可设置"在设计时。
希望这可以帮助某人 - 或者当我忘记并再次找到这篇文章时我:)