I have a QML ListView where the delegate loads it\'s component from another file. When clicking on an delegate item, I want to update ListView. C         
        
There are two problems here:
ListView's attached properties with the name of the item from which they're accessed.currentIndex property is a property of the ListView item type, not the attached property object.To fix them both, first change this:
ListView.currentIndex = index;
to this:
delegate.ListView.view.currentIndex = index;
And then give your delegate an id:
Component {
    id: contact
    Rectangle {
        id: delegate
    // ...
}
This is demonstrated (in part) by the Example Usage section of the documentation:
ListView attaches a number of properties to the root item of the delegate, for example ListView:isCurrentItem. In the following example, the root delegate item can access this attached property directly as ListView.isCurrentItem, while the child contactInfo object must refer to this property as wrapper.ListView.isCurrentItem.
Use attached property ListView.view:
This attached property holds the view that manages this delegate instance
Small example:
import QtQuick 2.4
import QtQuick.Window 2.2
import QtQuick.Layouts 1.1
Window {
    width: 600
    height: 400
    visible: true
    Component {
        id: listDelegate
        Rectangle {
            height: 30
            width: parent.width
            color:  ListView.isCurrentItem ? "orange" : "white"
            property var view: ListView.view
            property int itemIndex: index
            Text { anchors.centerIn: parent; text: name }
            MouseArea {
                anchors.fill: parent
                onClicked: {
                    view.currentIndex = itemIndex;
                }
            }
        }
    }
    RowLayout {
        anchors.fill: parent
        ListView {
            Layout.minimumWidth: parent.width / 2
            Layout.fillHeight: true
            model: ListModel {
                ListElement {name: "item1.1"}
                ListElement {name: "item1.2"}
                ListElement {name: "item1.3"}
            }
            delegate: listDelegate
        }
        ListView {
            Layout.minimumWidth: parent.width / 2
            Layout.fillHeight: true
            model: ListModel {
                ListElement {name: "item2.1"}
                ListElement {name: "item2.2"}
                ListElement {name: "item2.3"}
            }
            delegate: listDelegate
        }
    }
}