c# - 如何在不手动设置的情况下将绑定属性作为参数传递
问题描述
这是我的App.xaml.cs
protected override Task OnInitializeAsync(IActivatedEventArgs args) {
Container.RegisterInstance(SessionStateService);
Container.RegisterInstance(NavigationService);
Container.RegisterType<IUserRepository, UserRespository>(new ContainerControlledLifetimeManager());
Container.RegisterType<UserSettingsContext>(new ContainerControlledLifetimeManager());
Container.RegisterType<IUserSettings, UserSettings>(new ContainerControlledLifetimeManager());
var userSettings = this.Container.Resolve<UserSettingsContext>();
userSettings.Database.EnsureCreated();
return base.OnInitializeAsync(args);
}
这是我的用户设置
using using Prism.Windows.Validation;
public class UserSettings : ValidatableBindableBase, IUserSettings {
private string _firstName;
public string FirstName {
get { return _firstName; }
set { SetProperty(ref _firstName, value); }
}
private string _lastName;
public string LastName {
get { return _lastName; }
set { SetProperty(ref _lastName, value); }
}
private UserType _userType;
public UserType UserType {
get { return _userType; }
set { SetProperty(ref _userType, value); }
}
private string _username;
[Required(ErrorMessage = "Required.")]
public string Username {
get { return _username; }
set { SetProperty(ref _username, value); }
}
private string _password;
[Required(ErrorMessage = "Required.")]
public string Password {
get { return _password; }
set { SetProperty(ref _password, value); }
}
}
视图模型:
public class TestViewModel : UserSettings {
private UserSettings user;
public UserSettings User => user;
public async void SaveSettings() {
//It will work with this line
// var user = new UserSettings() {
// Username= this.Username,
// Password= this.Password,
// UserType= this.UserType,
// FirstName= this.FirstName,
// LastName= this.LastName
// };
//null properties
await loginService.SaveUserSettings(user);
}
}
当我尝试传递“用户”时,属性为空,即使是来自 UI(视图)的用户输入数据,如果我使用上面的代码设置UserSettings,它将起作用,但我想在没有它的情况下简化它,我该怎么做那?
谢谢
解决方案
你想写await loginService.SaveUserSettings(this);
是因为this
它似乎是充满数据的目标。
推荐阅读
- jhipster - 在具有 OAUTH2 基础安全性的单片 Jhipster APP 中公开 api
- javascript - 在 App.get 我想有两个不同的响应(渠道)
- python - 烧瓶记录到文件 - 在本地工作但不在服务器上
- installation - Librato 安装失败并显示“错误:读取配置文件失败!”
- asp.net - 该进程无法访问文件 web.config,因为它正被另一个进程使用
- javascript - 如何更改我的 JSON 的外观
- python - Python 请求 POST - 错误 400
- ios - Swift:实例成员不能用于 ARKitVision 示例中的类型
- java - 如何使用Java从特定日期减法
- javafx - 方法检查锁,在锁释放后运行