Page 1 of 1

Connect GridViewColumnHeader.Click event from ListView

Posted: 23 Apr 2020, 12:20
by tesrt
I have a ListView and I want to connect the event GridViewColumnHeader.Click to the function PersonListView_Click
<ListView ItemsSource="{Binding Person}" GridViewColumnHeader.Click="PersonListView_Click">
            <ListView.View>
                <GridView>
                    <GridViewColumn DisplayMemberBinding="{Binding Name}" />
        protected override bool ConnectEvent(object source, string eventName, string handlerName)
        {
            if (eventName == "Click" && handlerName == "PersonListView_Click")
            {
                Debug.Log(source);
                ViewBase v = ((ListView)source).View;
                
                // += this.PersonListView_Click;
                return true;
            }
            return false;
        }
How can I setup the ConnectEvent in order to recieve the click event when I click on the header/GridViewColumn of my ListView ?

Re: Connect GridViewColumnHeader.Click event from ListView

Posted: 23 Apr 2020, 13:26
by sfernandez
In this case you should use the AddHandler method because ListView does not define the Click event and you are using it as an attached routed event:
        protected override bool ConnectEvent(object source, string eventName, string handlerName)
        {
            if (eventName == "Click" && handlerName == "PersonListView_Click")
            {
                ((ListView)source).AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(this.PersonListView_Click));
                return true;
            }
            return false;
        }

Re: Connect GridViewColumnHeader.Click event from ListView

Posted: 23 Apr 2020, 14:10
by tesrt
Thank you for your help!