我正在开发一个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下面获得了一条红色的波浪线。在页面顶部有一个使用包括它,VS不会添加任何其他UWP引用。
通过将ItemClickEventArgs更改为RoutedEvenArgs,我可以在应用程序的其他部分中消除错误,但在这种情况下,我确实需要将ClickedItem作为参数传递给后面的代码。
我刚刚与其他人开始谈论UWP并且他们说他们在其他cLick事件上遇到了同样的问题。那么,我们做错了什么,或者我们的应用程序中是否存在需要识别UI所需的东西?
我得到的完整错误是这样的:错误CS0234命名空间“app name”中不存在类型或命名空间名称“UI”(您是否缺少程序集引用?)
答案 0 :(得分:5)
类型或命名空间名称&#39; UI&#39;名称空间&#39; app name&#39;
中不存在
这意味着您的应用中包含Windows
的命名空间。
更改名称空间,或者为UWP加前缀:
global::Windows.UI.Xaml.Controls
另见How to: Use the Global Namespace Alias (C# Programming Guide)。
答案 1 :(得分:1)
我可以看到的一个错误是你的处理程序应该标记为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();
}
运算符:
{{1}}