我正在开发一个 MVVM 应用程序,我正在尝试从 viewmodel 更新我的数据库对象。
我正在尝试更新IsDisplayed
绑定到双向模式下切换开关的布尔值。但最终对象没有更新......出了什么问题?
这是我想保存布尔状态时调用的方法:
public static void UpdateIsDisplayedInServices(List<ECList> lists)
{
ECList listToUpdate;
foreach (ECList list in lists)
{
listToUpdate = GetECList(list.DatabaseId);
listToUpdate = list; // I also tried listToUpdate.IsDiplayed = list.IsDiplayed
ECContextManager.Context.SubmitChanges();
}
}
编辑:
我做了一个单元测试来暴露问题。
[TestMethod]
public void _1DeactivateService()
{
bool newBool = false;
ECContextManager.Dispose();
ECList service = ECListManager.GetECList(2);
// IsDiplayed is true by default
service.IsDisplayed = newBool;
service.Subtitle = "test";
ECContextManager.Context.SubmitChanges();
ECContextManager.Dispose();
ECList service2 = ECListManager.GetECList(2);
if (newBool)
{
Assert.IsTrue(service2.IsDisplayed);
}
else
{
Assert.IsFalse(service2.IsDisplayed);
}
}
最后service2
有副标题“测试”,但 IsDiplayed 值仍然是“真”......