For the grounding it's easy. Basically a switch can have not 2 but 3 state. Basically


High when pressed 
Undefined when unpressed and not grounded
Low when unpressed and ground








simulate this circuit &ndash; Schematic created using CircuitLab

Grounding it will allow you to make sure the output low, without that it's a short circuit. So basically you'll use a pull-up or pull-down resistor for that.

They are connected in parallel means they are not connected one after each other but side to side. Example







simulate this circuit

So from what I read in your question, the switch sound like a "master switch" who can act on both of the 3 other switch. If pressed, it's like all the switch are pressed. But hard to tell without precise schematics.

Why does my switch need to be wired in this fashion?
I have been looking for some answers about this issue  on my code and I can't fine different answers because as far as I've seen there are not many answers to this.

I Have a ListView that is being filled with with some server content (note app) I seem able to change selectionMode, tapBehavior and some different properties of the ListView using the WinJS.UI.procesAll().then(//code here);
but the only one that is not working at all though Chrome dev tools tell me there is actually an eventhandler for oninvokeditem but once I click nothing seems to work, any breakpoints I put aren't hit at all.
here's some code:

var WinJSRequest = function (uri, method, data) {
    var request = {
        url: uri,
        type: method,
        contentType: "application/json",
        accepts: "application/json",
        cache: false,
        dataType: 'json',
        data: JSON.stringify(data),
        beforeSend: function (xhr) {
            xhr.setRequestHeader("Authorization",
                "Basic " + btoa(username + ":" + password));
        },
        error: function (jqXHR) {
            //console.log(data);
            console.log("ajax error " + jqXHR.status);
        }
    };
    return WinJS.xhr(request).done(
        function completed(request) {
            var arr = JSON.parse(request.response);
            for (var i = 0; i &lt; arr.tareas.length; i++) {
                tareas.push(arr.tareas[i]);
            }
            WinJS.Namespace.define("App.Notas", {
                data: new WinJS.Binding.List(tareas)
            });
            WinJS.UI.processAll().then( function() {
                listaTareas = WinJS.Utilities.query('#listaTareas');
                listaTareas = listaTareas[0].winControl;
                listaTareas.oniteminvoked = function (ev) {
                    console.log('index: ' + ev.detail.itemIndex);
                };
            });
        },
        function error(request) {
            alert(request);
        },
        function progress(request) {
            //alert(request);
            console.log('In Progress');
        });
};


and Here's some HTML
 
        

    &lt;!-- Template para el Listview --&gt;
    &lt;div id="listviewTemplate"&gt;
        &lt;div class="listViewNotasTemplate" data-win-control="WinJS.Binding.Template"&gt;
            &lt;div class="listviewItemNota"&gt;
                &lt;h1 class="win-h1" data-win-bind="textContent: titulo"&gt;&lt;/h1&gt;
                &lt;h3 class="win-h3" data-win-bind="textContent: descripcion"&gt;&lt;/h3&gt;
                &lt;h5 class="win-h5" data-win-bind="textContent: hecho"&gt;&lt;/h5&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;!-- Codigo del ListView --&gt;
    &lt;div id="listaTareas" class="listView win-selectionstylefilled" data-win-control="WinJS.UI.ListView" data-win-options="{
                itemDataSource: App.Notas.data.dataSource,
                itemTemplate: select('.listViewNotasTemplate'),
                selectionMode: 'multi',
                tapBehavior:'toggleSelect',
                layout: { type: WinJS.UI.ListLayout }
            }"&gt;&lt;/div&gt;
    &lt;!-- Termino el ListView --&gt;
    &lt;script src="node_modules/winjs/js/base.js"&gt;&lt;/script&gt;
    &lt;script src="node_modules/winjs/js/ui.js"&gt;&lt;/script&gt;
    &lt;script src="node_modules/jquery/dist/jquery.js"&gt;&lt;/script&gt;
    &lt;script src="js/index.js"&gt;&lt;/script&gt;


there's nothing else pretty much that's all the body.
I have tried to use listaTareas.addEventListener('oniteminvoked', handler, false);,
I tried to declare it on the HTML Control and yet nothing, perhaps is just something I'm not looking help anyone? 

Thanks in advance :)

EDIT: for the record as I was looking at the console i found that the oniteminvoked: (...)
found this on
arguments: TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them
    at Function.remoteFunction (:3:14)
    at Object.InjectedScript.callFunctionOn (:750:66)
