【发布时间】:2014-12-06 21:12:46
【问题描述】:
我正在为用户设计个人资料页面,他们可以在其中编辑个人信息。我正在使用 PersonViewModel(其中包含当前登录的人员)来显示有关用户的当前信息。编辑用户信息的字段绑定到验证模型。按下“执行更改”按钮后,我得到服务器的响应(HTTPStatusCode Ok + 更改的用户对象),我根据更改更改现有对象的字段。然后我使用setter注入来更新我的PersonViewModel...调试时,我可以看到我的对象都是最新的,但我的视图仍然显示旧信息...我做错了什么?`
这是我按下按钮执行更改时执行的代码:
private async void ChangeInfoButton(object sender, RoutedEventArgs e)
{
User user;
List<ErrorInfo> errors;
if (_profileInformationValidationModel.TryGetUser(out user, out errors))
{
var response = await Session.Instance.DataProvider.UpdaterUserInfo(user);
if (response.IsSuccess)
{
/*SignedInUserInfo = AlteredUserInfo*/
Session.Instance.User.Information = user.Information;
_personViewModel.SetPerson(user.Information);
var d1 = new MessageDialog("Uw gegevens werden succesvol gewijzigd.");
d1.ShowAsync();
AnnulInfoButton(sender, e);
}
` 这是 PersonViewModel:
public class PersonViewModel
{
private Person _person;
public void SetPerson(Person p)
{
_person = p;
}
public PersonViewModel(Person person)
{
_person = person;
}
public string Street
{
get { return _person.Street; }
}
public string HouseNumber
{
get { return _person.HouseNumber; }
}
public string Bus
{
get { return _person.Bus; }
}
public string Email
{
get { return _person.Email; }
}
【问题讨论】:
-
您的 mvvm 模式不正确。你的模型和你的模型之间几乎没有什么区别。发布您的 xaml 绑定。
标签: xaml mvvm windows-phone-8.1