我有一个使用MultiSelectList的Windows Phone 8应用程序。一般的工作流程应该是用户选择列表中的一个或多个项目,然后单击打开弹出对话框的应用栏按钮。由于对话框小于屏幕,因此在打开对话框时应禁用列表。
框架的禁用部分似乎存在问题。
应用程序的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的复选框。
我完全陷入困境,不知道如何调试。
答案 0 :(得分:0)
为什么禁用 RootFrame ,您可以直接停用 MultiselectList 。禁用 RootFrame 时,除了ApplicationBar之外,页面上的所有控件都是不可用的。所以列表上的对话框弹出也是禁用的。所以我认为这不是一个好方法。希望这可以帮到你