为什么类的公共属性可见但不是MVVM中的公共方法?

为什么类的公共属性可见但不是MVVM中的公共方法?

问题描述:

我在一个项目中有一个WPF窗口与WCF项目在同一个解决方案中。在WCF项目中,我有一个公共类和公共属性和公共方法。为什么类的公共属性可见但不是MVVM中的公共方法?

public class TemporaryExam 
{ 
    public Exam Exam { get; set; } 
    public List<Question> Questions { get; set; } 
    public List<PossibleAnswer> PossibleAnswers { get; set; } 


    public void AddQuestion(Question question) 
    { 
     Questions.Add(question); 
    } 

    public void AddPossibleAnswer(PossibleAnswer possibleAnswer) 
    { 
     PossibleAnswers.Add(possibleAnswer); 
    } 
} 

在窗口代码隐藏我可以指定值的属性,但得到一个错误,指出TemporaryExam不包含定义AddQuestion(问题)。

TemporaryExam temporaryExam = new TemporaryExam(); 
Exam exam = new Exam { Id = Guid.NewGuid(), Title = "Exam3" }; 
Question question = new Question 
{ 
    Id = Guid.NewGuid(), 
    ExamQuestion = "Vad heter du?", 
    ExamId_Id = exam.Id 
}; 
PossibleAnswer possibleAnswer = new PossibleAnswer 
{ 
    Id = Guid.NewGuid(), 
    PossibleAnswer1 = "Bamse", 
    QuestionId_Id = question.Id 
}; 

temporaryExam.AddQuestion(question); 

为什么这些属性是可见的而不是方法?

编辑: 这不会产生误差修改:

temporaryExam.Exam = exam; 
+0

@Clemens尝试了这个temporaryExam.Exam = exam;它可以工作,但方法仍然无法访问:/ – user3215947

+1

像WCF项目的声音不是最新的。确保它的构建正确,并且在WPF项目中引用它是引用实际构建而不是陈旧的副本。 –

+0

@Cameron我再次发布了WCF项目并更新了WPF项目中的服务引用,但仍然得到相同的错误。 TemporaryExam类是WCF项目中的一个独立文件吗? – user3215947

尝试从方法removinig类型参数(问题),你可能需要定义自定义类型从WCF项目暴露。