開發UWP的時候,很多人會碰到一個問題,就是ListView在被資料綁定之後經常有個預設選中的效果,就像這樣:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuQGZ1MjZlRTZ3cjYhR2MwQTYiFGN4YTMmZjY2EDOiJzYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
而且它不僅會選中,還會觸發一次SelectionChanged事件,當然,我們要讓ListView可點選,一種流行的做法确實是用SelectionChanged事件,就像這樣:
但是因為資料綁定之後會被預設選中一項,是以這個事件被直接觸發了,使用者就會直接進入Item的子頁面,ListView會一閃而過,為此我還寫過workround:
結果今天發現其實ListView的預設選中效果是可以去掉的,隻要把SelectionMode設定為None:
現在就不會有預設選中項了:
然後把點選的事件從SelectionChanged換成ItemClick,而且一定記得要把IsItemClickEnabled打開:
這樣背景代碼就可以用e.ClickedItem直接獲得目前被點選的對象:
并且那個惡心的workround也能去掉了,代碼更加有逼格了!