We have a ton of XAML based articles on this site. This one on binding selected item in a ListView is similar to what you are after. The core important thing to pick up on binding, is that doesn't just have to be about the "data". You can have your data classes inherit some basic custom UI oriented classes and certain properties. If you bind these property values to your UI control, then simply changing the proper value on the data object fires all the redrawing updates to the UI.
https://www.nullskull.com/a/10476811/xaml-listviewgridview-to-select-multiple-items-based-on-search-criteria.aspx
https://www.nullskull.com/articlelist.aspx?topicid=56&page=1