I'm using a WPF ListView control which displays a list of databound items.
<ListView ItemsSource={Binding MyItems}>
<ListView.View>
<GridView>
<!-- declare a GridViewColumn for each property -->
</GridView>
</ListView.View>
</ListView>
I'm trying to obtain a behavior similar to the ListView.SelectionChanged
event, only I want to also detect if the currently selected item is clicked. The SelectionChanged
event does not fire if the same item is clicked again (obviously).
What would be the best (cleanest) way to approach this?
Best Answer
Use the ListView.ItemContainerStyle property to give your ListViewItems an EventSetter that will handle the PreviewMouseLeftButtonDown event. Then, in the handler, check to see if the item that was clicked is selected.
XAML:
Code-behind: