简体   繁体   中英

How to capture click with ListView in UWP?

I would like to capture click events from listview through my viewmodel. Here's what I have so far.

My Xaml.

        <ListView RelativePanel.Below="list3" ItemClick="{x:Bind ViewModel.ClickItemList}" RelativePanel.AlignLeftWithPanel="True" RelativePanel.AlignRightWithPanel="True">
            <ListViewHeaderItem Content="Header"></ListViewHeaderItem>
            <ListViewItem Content="Item 1" />
            <ListViewItem Content="Item 2" />
        </ListView>

My ViewModel.

    public void ClickItemList(object sender, ItemClickEventArgs e)
    {
        var clickedItem = (ListViewItem)e.ClickedItem;

        System.Diagnostics.Debug.WriteLine(clickedItem.Content);
    }

Unfortunately, ClickItemList is not triggered.

What is the recommended way to capture click in ListViewItem?

You should set the IsItemClickEnabled="True"

   <ListView RelativePanel.Below="list3" IsItemClickEnabled="True" ItemClick="{x:Bind ViewModel.ClickItemList}" RelativePanel.AlignLeftWithPanel="True" RelativePanel.AlignRightWithPanel="True">
            <ListViewHeaderItem Content="Header"></ListViewHeaderItem>
            <ListViewItem Content="Item 1" />
            <ListViewItem Content="Item 2" />
        </ListView>

You need IsItemClickEnabled :

<ListView RelativePanel.Below="list3"
          IsItemClickEnabled="True"
          ItemClick="{x:Bind ViewModel.ClickItemList}"
          RelativePanel.AlignLeftWithPanel="True"
          RelativePanel.AlignRightWithPanel="True">
    <ListViewHeaderItem Content="Header"></ListViewHeaderItem>
    <ListViewItem Content="Item 1" />
    <ListViewItem Content="Item 2" />
</ListView>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM