Hi,
I have an UltraListView that is populated with several items. What I am trying to do is have an action happen to the UltraListViewItem when a mouse enters and leaves the item, using the MouseEnterElement and MouseLeaveElement events. Unfortunately I don't know how to get the UltraViewListItem from the UIElementEventArgs that is passed into those methods. This is what I have tried but does not work:
private void Browser_MouseEnterElement( object sender, Infragistics.Win.UIElementEventArgs e ) { UltraListViewItem itemEnter = e.Element as UltraListViewItem; if( itemEnter != null ) { //do stuff with item
} } private void Browser_MouseLeaveElement( object sender, Infragistics.Win.UIElementEventArgs e ) { UltraListViewItem itemLeave = e.Element as UltraListViewItem; if( itemLeave != null ) { //do stuff with item
} }
The UltraListViewItemUIElement class encapsulates the item's physical representation on the screen; it derives (as all such Infragistics classes do) from UIElement. When handling MouseEnterElement/MouseLeaveElement, cast e.Element to the expected type, then check for a non null return. Note that in this case, the element class exposes a property that references the underlying object, but for UIElement classes that don't, you can oftentimes use the UIElement.GetContext method to get that reference.
Example:private void Browser_MouseEnterElement(object sender, UIElementEventArgs e){ UltraListViewItemUIElement itemElement = e.Element as UltraListViewItemUIElement; UltraListViewItem item = itemElement != null ? itemElement.Item : null; if ( item != null ) System.Diagnostics.Debug.WriteLine( item.Text );}