Search code examples
c#objectlistview

ObjectListView cannot cancel item selection BeforeSelect


I converting a standard TreeView to BrightIdeaSoftware.TreeListView

I cannot found how to convert this event

private void LstAgents_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
    // If error save
    if (!SaveCurrentValues())
        // Keep active selection
        e.Cancel = true;
}

How to simply cancel the user action if something was wrong with TreeListView

Thanks ...


Solution

  • If your goal is to prevent the user changing the selected item when there is a validation problem with it then you can use the SelectedIndexChanged event. From a usability point of view it's a bit of a disaster though. You might want to instead highlight the row in red or throw up an error dialog and revert the row.

    private object oldSelection = null;
    void LstAgents_SelectedIndexChanged(object sender, EventArgs e)
    {
        if(oldSelection != null && true/* some condition*/)
            LstAgents.SelectedObject = oldSelection;
    
        oldSelection = LstAgents.SelectedObject;
    }