不過,當您切換起始專案到 UWP 專案之後,就會發現到真正 XAML 上的錯誤問題在哪裡,以及真正的原因是甚麼?
XAML 中的語法錯誤
在底下的 XAML 宣告一個 ListView 控制項,其中資料來源是由 MyItemList 資料綁定而來,而使用者選取的紀錄,將會綁定到 MyItemListSelected 屬性上。
<ListView
ItemsSource="{Binding MyItemList}"
ItemSelected="{Binding MyItemListSelected}"
/>
乍看這樣的宣告似乎沒有甚麼問題,一旦當 Android 平台下執行的時候,就會發現到這樣的錯誤畫面
為什麼會發生這樣的問題呢? 這是因為
ItemSelected
這是一個 ListView 的事件
不過,當切換到 UWP 開發環境下執行同樣的程式碼,會得到底下的訊息與畫面
'Xamarin.Forms.Xaml.XamlParseException' 類型的例外狀況發生於 Xamarin.Forms.Xaml.dll,但使用者程式碼未加以處理
其他資訊: Position 13:7. No Property of name ItemSelected found
其中,訊息:
Position 13:7. No Property of name ItemSelected found
明確的說明了問題所在地點與內容,讓我們來對照原始 XAML 定義檔內容
您可以看到在13行的第7個位置,指的就是 ItemSelected,而根據錯誤訊息內容,那就使用錯誤的 XAML 屬性名稱,應該使要使用 SelectedItem 這個屬性。
System.NullReferenceException: Object reference not set to an instance of an object.
。而到底是哪裡發生了問題,也很難找出問題所在,現階段比較好的方法就是使用刪去法。