VS Designer总是抛出异常“x属性没有get / set方法”

时间:2015-04-23 23:29:43

标签: c# wpf visual-studio-2013 windows-runtime windows-phone-8.1

我遇到了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方法?

2 个答案:

答案 0 :(得分:1)

根据您的错误消息,我认为这很明显:" The Property" MyObject.MyProperty"没有get方法",您必须通过访问MyObject.MyProperty某处使用MyProperty,您需要检查, 还有一种方法是,如果你不想在本课程之外公开MyProperty,你应该使用私人套装,你真的很奇怪,你没有当你有一个公共二传手时,希望可以给你一些帮助

答案 1 :(得分:0)

我使用只写属性(定义为只写)来体验Windows窗体设计器故障(VS 2015)。我只能通过使属性读写(set / get)来重新显示表单。

我没有把它变成一种方法的唯一原因是我需要的是"可设置"在设计时。

希望这可以帮助某人 - 或者当我忘记并再次找到这篇文章时我:)