禁用RootFrame时出现MultiSelectList异常

本文关键字:MultiSelectList 异常 RootFrame 禁用 | 更新日期: 2023-09-27 17:51:12

我有一个使用MultiSelectList的Windows Phone 8应用程序。一般的工作流程应该是用户在列表中选择一个或多个项目,然后单击App栏按钮,打开弹出对话框。由于对话框比屏幕小,因此在打开对话框时应该禁用该列表。

框架的禁用部分似乎有问题。

应用的RootFrame是一个TransitionFrame。

在弹出窗口打开之前,代码调用

_frame.IsEnabled = false; (where _frame = RootFrame)

这个调用似乎以某种方式产生了一个形式的异常:

Application_UnhandledException() System.Exception: Error HRESULT E_FAIL has been returned from a call to a COM component.
at MS.Internal.XcpImports.VisualStateManager_GoToState(Control reference, String StateName, Boolean useTransitions, Boolean& refreshInheritanceContext)
at System.Windows.VisualStateManager.GoToState(Control control, String stateName, Boolean useTransitions)
at System.Windows.Controls.Primitives.ToggleButton.ChangeVisualState(Boolean useTransitions)
at System.Windows.Controls.Primitives.ButtonBase.OnIsEnabledChanged(IsEnabledChangedEventArgs e)
at System.Windows.Controls.Control.OnIsEnabledChanged(Control control, EventArgs args)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)

当我取出_frame。IsEnabled = false调用则没有异常(也没有禁用)

我怀疑异常中的ToggleButton指的是MutliSelectList的复选框。

我完全卡住了,不知道如何调试了

禁用RootFrame时出现MultiSelectList异常

为什么要禁用RootFrame,你可以直接禁用MultiselectList。当您禁用RootFrame时,除了ApplicationBar之外,页面上的所有控件都不可用。所以列表上的对话框也被禁用了。所以我认为这不是一个好方法。希望能帮到你