Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何强制弹出按钮在UWP中加载/实例化?_C#_Xaml_Uwp - Fatal编程技术网

C# 如何强制弹出按钮在UWP中加载/实例化?

C# 如何强制弹出按钮在UWP中加载/实例化?,c#,xaml,uwp,C#,Xaml,Uwp,在我的UWP应用程序中,我有一个带有组合框的弹出按钮。当用户更改所选项目时,将触发ComboBox.SelectionChanged事件 问题是当我的应用程序试图从代码隐藏更改索引时。在这种情况下,应用程序导航到带有参数的页面,该参数表示组合框应选择索引#2 Frame.Navigate( typeof(ExamplePage) , 2) // Parameter = 2 由于页面刚刚被导航到,弹出按钮尚未加载/实例化。它仅在调用Flyout.ShowAt()方法时实例化 但是,一旦我单击实

在我的UWP应用程序中,我有一个带有组合框的弹出按钮。当用户更改所选项目时,将触发ComboBox.SelectionChanged事件

问题是当我的应用程序试图从代码隐藏更改索引时。在这种情况下,应用程序导航到带有参数的页面,该参数表示组合框应选择索引#2

Frame.Navigate( typeof(ExamplePage) , 2)  // Parameter = 2
由于页面刚刚被导航到,弹出按钮尚未加载/实例化。它仅在调用Flyout.ShowAt()方法时实例化

但是,一旦我单击实例化弹出型按钮并将其显示在视图中,组合框上的SelectionChanged事件就会实际触发,我就得到了预期的行为


当导航到页面时,如何强制弹出按钮加载/实例化,而不调用ShowAt()方法?我不希望弹出按钮的加载策略是“懒惰”;它需要立即加载。

不调用ShowAt()方法就无法加载/实例化弹出按钮。请解释你为什么想要这种行为。我现在意识到我把MVC搞混了。我依靠组合框来告诉我所选的索引,但由于它没有加载,所以返回-1。为了解决这个问题,我将SelectedIndex绑定到代码隐藏中的一个单独字段。现在可以工作了。@XavierXie一个很好的方案是,如果弹出按钮包含TreeView,我们将强制选择树中的正确节点。如果不调用ShowAt()方法,则无法加载/实例化弹出按钮。请解释你为什么想要这种行为。我现在意识到我把MVC搞混了。我依靠组合框来告诉我所选的索引,但由于它没有加载,所以返回-1。为了解决这个问题,我将SelectedIndex绑定到代码隐藏中的一个单独字段。现在可以工作了。@XavierXie一个很好的场景是,如果弹出按钮包含TreeView,我们将强制选择树中正确的节点。