問題
這個是個相當熱門的問題,許多人都有這樣的情況,會依據當時所接收到的資料狀態,決定那些控制項是否顯示出來;這尤其是在 ListView 的每筆紀錄上,根據每筆資料的紀錄,顯示出不同的控制項,讓整個應用程式更加有層次,那麼,我該如何做到這樣的需求呢?
解答
相信很多人都會先想到在這些控制項定義
x:Name
這個擴充飆技值,可是,這樣做的會就需要在 Code Behind 中來存取這個控制項物件,對於在 MVVM 架構下開發,似乎不是很好的選擇;另外,ListView.ItemTemplate 裡面的控制項,是沒有辦法使用這樣方式來存取的。
請先在 ViewModel 中定義一個型別為 bool 的屬性,將這個屬性綁定到相對應控制項的
IsVisible
屬性中;如此,藉由控制 ViewModel 的屬性值為 true 或者是 false,就可以做到是否要顯示這個控制項。