【问题标题】:Name from XAML file not in current context in cs file来自 XAML 文件的名称不在 cs 文件中的当前上下文中
【发布时间】:2020-12-08 00:25:52
【问题描述】:

我正在运行 Visual Studio 2015 Enterprise,并且正在尝试构建 Xamarin 项目。我创建了一个空白 XAML 应用程序项目。我去了 MainPage.xaml 文件,并在样板标签中添加了一个 x.Name ,如下所示:

在 MainPage.xaml.cs 文件中,我尝试通过引用该名称 hello 来更改该标签的文本:

VS 似乎不喜欢这样,因为我收到一个错误:

当前上下文中不存在名称“hello”。

如何访问 XAML 文件中的名称?我已经尝试清理解决方案并重建,但没有成功。

【问题讨论】:

    标签: visual-studio xaml xamarin xamarin.forms


    【解决方案1】:

    您必须使用x:Name 而不是x.Namex 是你用xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 声明的命名空间,如果你想使用在这个命名空间中声明的东西,你必须使用x 后跟一个冒号,而不是类或属性名。

    <Label x:Name="hello" 
           Text="Welcome to Stackoverflow" 
           VerticalOptions="Center" 
           HorizontalOptions="Center"/>
    

    【讨论】:

    • 嗨——你的回答帮助我理解了,但我仍然有同样的问题。我使用的是 VS2017 版本 15.6.4,我得到了红色下划线,并且消息说“当前上下文中不存在名称 'hello'”。这几乎是我创建新项目以来所做的唯一更改。但该项目确实编译并运行!这对于 Xamarin 的新手来说是令人沮丧的
    • 嗯,至少在第一次编译后它应该在那里。你使用 Resharper 吗?有时 Resharper 会添加这些行 :( 你能看看你的文件系统并寻找 obj/xyz/Namespace.PageName.xaml.g.cs。在这个文件中你应该看到一个部分类。它是否包含你的字段?
    【解决方案2】:

    正如@Sven-Michael Stübe 首先注意到的那样,您需要将您的x.Name 声明(这是不正确的)与x:Name 交换。

    然后,右键单击您的项目并单击 build(或 Mac 上的 ⌘K 快捷方式)以允许编译器查看您的名称声明。之后红色下划线应该会消失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-09
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 2013-10-02
      • 2014-04-22
      相关资源
      最近更新 更多