繁体   English   中英

是什么导致“名称空间中不存在类型或名称空间名称'UI'”错误?

[英]What is causing “The type or namespace name 'UI' does not exist in the namespace” error?

我正在开发UWP应用程序,并且正在尝试对GridView中SelectedItem的值进行某些操作。 因此,就像我通常使用WPF一样,我进入XAML并在XAML中键入事件名称,然后让VS用代码为我创建事件。

<GridView x:Name="DataGrid1"
        ItemClick="dg_ItemClick">
        <!-- Just -->
        <!-- Some -->
        <!-- Normal -->
        <!-- XAML -->
</GridView>

VS创建的事件如下所示

    private void dg_ItemClick(object sender, Windows.UI.Xaml.Controls.ItemClickEventArgs e)
    {
            Biz.Customer cust = e.ClickedItem as Biz.Customer;
            var messageDialog2 = new MessageDialog(cust.Code, cust.Company);
            messageDialog2.ShowAsync();
    }

在Windows.UI.Xaml.Controls部分的UI下,我立即得到一条红色的波浪线。 在页面顶部有一个using来包括它,并且VS不允许添加任何其他UWP引用。

通过将ItemClickEventArgs更改为RoutedEvenArgs,我可以像在应用程序的其他部分中一样消除错误,但是在这种情况下,我确实需要将ClickedItem作为参数传递给后面的代码。

我刚刚与其他人开始使用UWP,他们说他们在其他cLick事件中也遇到了同样的问题。 那么,我们都是在做错什么,还是在应用程序中缺少识别UI所需的东西?

我得到的全部错误是:错误CS0234名称空间“应用程序名称”中不存在类型或名称空间名称“ UI”(您是否缺少程序集引用?)

类型或名称空间名称“ UI”在名称空间“应用名称”中不存在

这意味着您的应用程序中包含Windows的命名空间。

更改您的名称空间,或在UWP之前添加前缀:

global::Windows.UI.Xaml.Controls

另请参见如何:使用全局命名空间别名(C#编程指南)

我可以看到的错误之一是您的处理程序应标记为async ,并且在调用async方法时还应使用await运算符:

private async void dg_ItemClick(object sender, Windows.UI.Xaml.Controls.ItemClickEventArgs e)
{
        Biz.Customer cust = e.ClickedItem as Biz.Customer;
        var messageDialog2 = new MessageDialog(cust.Code, cust.Company);
        await messageDialog2.ShowAsync();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM