Тема. Это происходит в тот момент, когда я закрываю приложение, а в разделе CloseAsync()
моего ViewModel пытается сохранить прикрепленную модель, которая унаследована от SavableModelBase
.Catel, почему вы обновляете свойства моей модели до нуля?
Мой ViewModel:
public ServerTabViewModel(Server server)
{
Argument.IsNotNull(() => server);
Server = server;
}
#region Properties
[Model]
public Server Server
{
get { return GetValue<Server>(ServerProperty); }
set { SetValue(ServerProperty, value); }
}
public static readonly PropertyData ServerProperty = RegisterProperty("Server", typeof(Server));
[ViewModelToModel("Server")]
public string ServerIpAddress
{
get { return GetValue<string>(ServerIpAddressProperty); }
set { SetValue(ServerIpAddressProperty, value); }
}
public static readonly PropertyData ServerIpAddressProperty = RegisterProperty("ServerIpAddress", typeof(string));
...
#endregion
protected override async Task CloseAsync()
{
var server = new Server
{
ServerIpAddress = ServerIpAddress, // ServerIpAddress is null now and model property (Server.ServerIpAddress) too.
...
};
SettingsService.SaveServer(server);
}
Моя модель:
public class Server : SavableModelBase<Server>
{
public string ServerIpAddress
{
get { return GetValue<string>(ServerIpAddressProperty); }
set { SetValue(ServerIpAddressProperty, value); }
}
public static readonly PropertyData ServerIpAddressProperty = RegisterProperty("ServerIpAddress", typeof(string));
...
}
В случае, если я удалить атрибут [ViewModelToModel("Server")]
на ServerIpAddress
свойство моей ViewModel, значение доступно. Это предсказуемо - больше не связано с собственностью с моделью.
Как я могу получить, чтобы модель не задавала свои свойства null в момент закрытия моего приложения? И почему это происходит?
CATEL, у у делать это? – Will
Картель, пожалуйста, больше не больно! –