[Interest] Awkwardness of delegates in heterogenous ListViews

Elvis Stansvik elvstone at gmail.com
Wed Jun 8 15:32:41 CEST 2016


Hi all,

I'm currently using a "type" role in my items and then a Loader as
delegate, to give a level of indirection and let me choose the actual
delegate based on the "type" of the item.

This explains it better (from my ListView):

        delegate: Loader {
            sourceComponent: {
                switch (type) {
                case "color":
                    return colorDelegate
                case "flag":
                    return flagDelegate
                ...
                }
            }

            Component {
                id: colorDelegate

                ColorDelegate { }
            }

            Component {
                id: flagDelegate

                FlagDelegate { }
            }

            ...
        }

What I don't like with this approach is that inside my delegates, e.g.
ColorDelegate.qml, I have to use parent.ListView.view.model to get a
reference to the model (needed for editing operations). The use of
"parent" here assumes a certain layout, but I see no other way :(

How have others solved the issue of delegates for heterogenous lists?

Best regards,
Elvis



More information about the Interest mailing list