我正在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?)
我是否需要在代码中的其他位置引用其他文件,或者我错过了其他内容?
答案 0 :(得分:1)
您需要包含对CookingMenu
定义位置的引用;特别是它定义的命名空间。如果你在Visual Studio项目的同一文件夹中创建了CookingMenu.xaml
和BakingMenu.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。
希望有所帮助!