为什么类的公共属性在 MVVM 中可见,但它的公共方法不可见

本文关键字:方法 MVVM 属性 为什么 | 更新日期: 2023-09-27 18:36:58

我在与 WCF 项目相同的解决方案中的项目中有一个 WPF 窗口。在 WCF 项目中,我有一个具有公共属性和公共方法的公共类。

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(question) 的定义。

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;

为什么类的公共属性在 MVVM 中可见,但它的公共方法不可见

尝试从方法中删除 removinig 类型参数(问题),因为您可能需要定义要从 WCF 项目公开的自定义类型。