单击按钮时在两个xaml页面之间切换

时间:2018-06-17 18:47:19

标签: c# visual-studio xaml visual-studio-2017

我正在Visual Studio 2017中创建一个应用程序。我有两个.xaml页面,我想在点击一个按钮时在两者之间进行更改。到目前为止,我的代码是:

private void bakingButton(object sender, RoutedEventArgs e)
        {
            CookingMenu cooking = new CookingMenu();
            cooking.show();
        }

我所在的页面名为BakingMenu.xaml,我想去CookingMenu.xaml。但是,这会显示错误消息:The type or namespace name 'CookingMenu' could not be found (are you missing a using directive or an assembly reference?)

我是否需要在代码中的其他位置引用其他文件,或者我错过了其他内容?

1 个答案:

答案 0 :(得分:1)

您需要包含对CookingMenu定义位置的引用;特别是它定义的命名空间。如果你在Visual Studio项目的同一文件夹中创建了CookingMenu.xamlBakingMenu.xaml,并将其名称作为默认生成的命名空间,那么它们将是相同的命名空间,您不需要引用。

但是,如果您在不同的文件夹中创建它们,或者编辑了它们的命名空间,那么它们位于不同的命名空间中,您需要一个引用。

将其想象为您使用页面(类)的第一个名称,但编译器不知道您指的是哪个“Joe”。您需要使用其全名。

您可以在线进行此参考(尽管您需要在引用CookingMenu类型时使用它):

NameSpace.CookingMenu cooking = new NameSpace.CookingMenu();

其中NameSpace被声明名称空间CookingMenu所取代(通过打开CookingMenu的C#文件,并查看顶部附近...包括由句点分隔的几个单词)。示例命名空间可能看起来像MyApp.Models.Class。默认情况下,它包装了您的类定义(因此它是最外面的花括号集)。不要在您的引用中包含“namespace”,而只包括该行后面的所有内容。

或者,您可以在文件的顶部放置一个命名空间引用,然后您不需要在每个引用中包含命名空间(在该文件中):

using NameSpace;

然后你可以使用你所写的代码。

以下是using指令的文档:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/using-directive

希望有所帮助!