This is the VB.NET code that does the trick (the one posted with the question would give a runtime error when casting to menu item):
Dim sProjectList(,) As Object
Dim mi As MenuItem
...
If IsArray(sProjectList) Then
For i = sProjectList.GetLowerBound(0) To sProjectList.GetUpperBound(0)
mi = New MenuItem()
mi.Header = sProjectList(i, 0).ToString
AddHandler mi.Click, AddressOf subShowOneProject
miProjectList.Items.Add(mi)
Next i
End If
miProjectList is a menuitem I defined in the xaml file.
subShowOneProject is the procedure that handles the click event.
HTH,
Iris