C# 如何强制弹出按钮在UWP中加载/实例化?
在我的UWP应用程序中,我有一个带有组合框的弹出按钮。当用户更改所选项目时,将触发ComboBox.SelectionChanged事件 问题是当我的应用程序试图从代码隐藏更改索引时。在这种情况下,应用程序导航到带有参数的页面,该参数表示组合框应选择索引#2C# 如何强制弹出按钮在UWP中加载/实例化?,c#,xaml,uwp,C#,Xaml,Uwp,在我的UWP应用程序中,我有一个带有组合框的弹出按钮。当用户更改所选项目时,将触发ComboBox.SelectionChanged事件 问题是当我的应用程序试图从代码隐藏更改索引时。在这种情况下,应用程序导航到带有参数的页面,该参数表示组合框应选择索引#2 Frame.Navigate( typeof(ExamplePage) , 2) // Parameter = 2 由于页面刚刚被导航到,弹出按钮尚未加载/实例化。它仅在调用Flyout.ShowAt()方法时实例化 但是,一旦我单击实
Frame.Navigate( typeof(ExamplePage) , 2) // Parameter = 2
由于页面刚刚被导航到,弹出按钮尚未加载/实例化。它仅在调用Flyout.ShowAt()方法时实例化
但是,一旦我单击实例化弹出型按钮并将其显示在视图中,组合框上的SelectionChanged事件就会实际触发,我就得到了预期的行为
当导航到页面时,如何强制弹出按钮加载/实例化,而不调用ShowAt()方法?我不希望弹出按钮的加载策略是“懒惰”;它需要立即加载。不调用ShowAt()方法就无法加载/实例化弹出按钮。请解释你为什么想要这种行为。我现在意识到我把MVC搞混了。我依靠组合框来告诉我所选的索引,但由于它没有加载,所以返回-1。为了解决这个问题,我将SelectedIndex绑定到代码隐藏中的一个单独字段。现在可以工作了。@XavierXie一个很好的方案是,如果弹出按钮包含TreeView,我们将强制选择树中的正确节点。如果不调用ShowAt()方法,则无法加载/实例化弹出按钮。请解释你为什么想要这种行为。我现在意识到我把MVC搞混了。我依靠组合框来告诉我所选的索引,但由于它没有加载,所以返回-1。为了解决这个问题,我将SelectedIndex绑定到代码隐藏中的一个单独字段。现在可以工作了。@XavierXie一个很好的场景是,如果弹出按钮包含TreeView,我们将强制选择树中正确的节点。