2016-01-10 93 views
1

我正在處理一個UWP應用程序,我正在嘗試使用GridView中SelectedItem的值做些什麼。所以就像我通常使用WPF一樣,我進入了XAML並在XAML中輸入了我的事件名稱,並讓VS爲我創建了代碼中的事件。是什麼導致「名稱空間中不存在類型或名稱空間名稱'UI'錯誤?

<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類型或命名空間名稱「UI」命名空間中的「應用程序名」不存在(?是否缺少程序集引用)

+0

是的。該文件所在的文件夾稱爲Windows。這是我的問題嗎? –

回答

1

一個錯誤的我可以看到的是,您的處理程序應標明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(); 
} 
相關問題