【发布时间】:2019-01-29 00:04:13
【问题描述】:
在尝试从一个页面导航到另一个页面时,我收到“属性 BorderThickness 的无效属性值未知”。错误。
如果我在调试器中单步调试代码,一切正常。如果我让导航自己发生,代码就会崩溃。
除了将 BorderThickness 设置为特定(整数)值或使用内置 ThemeResources 之外,这些值永远不会与可能为 null 或具有意外值的绑定值绑定。
这段代码曾经运行良好,但今天早上似乎已经结束了。
【问题讨论】:
在尝试从一个页面导航到另一个页面时,我收到“属性 BorderThickness 的无效属性值未知”。错误。
如果我在调试器中单步调试代码,一切正常。如果我让导航自己发生,代码就会崩溃。
除了将 BorderThickness 设置为特定(整数)值或使用内置 ThemeResources 之外,这些值永远不会与可能为 null 或具有意外值的绑定值绑定。
这段代码曾经运行良好,但今天早上似乎已经结束了。
【问题讨论】:
我仍然不确定为什么会出现此问题,但我可以具体确定错误发生的位置。
public async void OnLevelUp(object sender, EventArgs e)
{
IsBusy = true;
LevelUpVm.CharacterId = IoC.Game.GetCharacter(SelectedCharacter.Id).Id;
**await IoC.SaveConfigFile();** <<< OFFENDING LINE OF CODE
var rootFrame = Window.Current.Content as Frame;
rootFrame?.Navigate(typeof(LevelUpView), null);
IsBusy = false;
}
如果我将 OFFENDING LINE OF CODE 移到 rootFrame?Navigate 行之后,它可以正常工作。
因此,经过 5 个小时的修改代码后,我找到了解决方案 - 但我仍然不确定为什么 await 调用会导致问题。
【讨论】: