gpt4 book ai didi

c# - 如何在不手动设置的情况下将绑定(bind)属性作为参数传递

转载 作者:太空宇宙 更新时间:2023-11-03 11:58:22 25 4
gpt4 key购买 nike

这是我的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);
}

这是我的UserSettings

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); }
}
}

View 模型:

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);
}
}

当我尝试传递 'user' 时,属性为空,即使是来自 UI( View )的用户输入数据,如果我设置 UserSettings 使用上面的代码,但我想在没有它的情况下简化它,我该怎么做?

谢谢

最佳答案

您想编写 await loginService.SaveUserSettings(this); 因为 this 似乎是充满数据的目标。

关于c# - 如何在不手动设置的情况下将绑定(bind)属性作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58371026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com