The content of the attribute icon must be the name of a field (but it fall back to a direct icon name if the field does not exist). So this field should contain the name of the icon to display. So usually it is a Function fields which a on_change_with method as getter so it can change the value dynamically.
Yes for that you must use a suffix tag inside the field tag, see Views — Tryton server