Con l'obiettivo di indicare una icona diversa per ogni voce del menu ho aggiunto un attributo ad ogni nodo del mio .sitemap, per esempio:
<siteMapNode url="~/SubAppA/" title="SubAppA" description="Sotto-Applicazione A" icon="img/btn_home1.gif"/>
Per visualizzare l'immagine con un Menu (System.Web.UI.WebControls) ho provato dal DataBinding a specificare il nome attributo ImageUrlField indicando il valore icon ma ottendo un bel errore dal Menu "Errori parsing control: Could not bind to the 'icon' property...".
Quindi ho provato a raggiungere l'obiettivo con un po di codice nell'evento
protected
void Menu2_MenuItemDataBound(object sender, MenuEventArgs e)
e così ho visto che SiteMapNode.Item è una collezione read-only degli attributi custom del nodo, quindi questo codice ha fatto il caso mio.
e.Item.ImageUrl = ((SiteMapNode)e.Item.DataItem)["icon"];
Grazie a Google ho trovato conferma di questa soluzione nel blog di Danny Chen (ASP.NET QA tester) in queto post: http://weblogs.asp.net/dannychen/archive/2005/03/28/396099.aspx