Как я могу установить значение в моей viewModel? - PullRequest
0 голосов
/ 21 ноября 2011

У меня есть следующее:

namespace Test {

public class Location {
    public string city { get; set; }
}

public class BaseViewModel {
    public BaseViewModel() {
        Location = new Location { city = "Paris"; };
    }
    public Location Location { get; set; }
}

public class EditViewModel : BaseViewModel {
    public Book Book { get; set; }
    Location = "France";
}

}

Это кажется странным требованием, но как я могу установить значение Location из EditViewModel? В строке ниже выдается следующая ошибка:

Location = "France";
Error   2   Invalid token '=' in class, struct, or interface member declaration

Ответы [ 3 ]

1 голос
/ 21 ноября 2011

Добавьте конструктор.

public EditViewModel ()  {
  Location = "France";
}

или лучше добавьте специализированный конструктор и конструктор по умолчанию:

    public EditViewModel (string LocationText)  {
      Location = LocationText;
    }

    public EditViewModel() : this("France") { }

просто, если быть точным, не используйте строку, используйте ваш объектЯ использовал строку для ускорения.

0 голосов
/ 21 ноября 2011

вам просто нужно изменить класс EditViewModel ..

Примерно так:

public class EditViewModel : BaseViewModel {
    public Book Book { get; set; }

    public EditViewModel(){
        Location = "France";
    }
}

* Вы пытались установить значение для свойства базового класса в классеscope .. , что недопустимо ..

Вы можете сделать это в конструкторе для любого другого метода в классе .. Как я уже упоминал выше ..

Надеюсь, эта помощь!

0 голосов
/ 21 ноября 2011

Вам нужно istantiate объект Location, а не задавать его как строку:

Location = new Location { city = "France" }; 

, и лучше, если вы переименуете свойство с другим именем, не используйте имя класса.

public class BaseViewModel { 
    public BaseViewModel() { 
        CurrentLocation = new Location { city = "Paris"; }; 
    } 
    public Location CurrentLocation { get; set; } 
}

public class EditViewModel : BaseViewModel { 
    public Book Book { get; set; } 
    public EditViewModel() : base()
    {
        CurrentLocation = new Location { city = "France"; }; 
    }
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...