Option Explicit On Option Strict On Imports System.ComponentModel Public Class Form1 Private ComboBox1 As New ComboBox Private ContextMenu1 As New ContextMenuStrip Private ContextMenuBinder As ContextMenuItemsBinder Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.Controls.Add(Me.ComboBox1) Me.ComboBox1.Items.AddRange({"€–ÚA", "€–ÚB", "€–ÚC"}) Dim Menu(Me.ComboBox1.Items.Count - 1) As ToolStripMenuItem For i As Integer = 0 To Me.ComboBox1.Items.Count - 1 Menu(i) = New ToolStripMenuItem(Me.ComboBox1.Items.Item(i).ToString, Nothing, AddressOf Menu_Click) Menu(i).Tag = i Next Me.ContextMenu1.Items.AddRange(Menu) Me.ContextMenuStrip = Me.ContextMenu1 Me.ContextMenuBinder = New ContextMenuItemsBinder(Me.ContextMenu1.Items) Me.ComboBox1.DataBindings.Add(NameOf(Me.ComboBox1.SelectedIndex), Me.ContextMenuBinder, NameOf(Me.ContextMenuBinder.SelectedIndex), Nothing, DataSourceUpdateMode.OnPropertyChanged) Me.ComboBox1.SelectedIndex = 1 End Sub Private Sub Menu_Click(sender As Object, e As EventArgs) Me.ContextMenuBinder.SelectedIndex = CInt(DirectCast(sender, ToolStripMenuItem).Tag) End Sub End Class Public Class ContextMenuItemsBinder Implements INotifyPropertyChanged Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged Property Items As ToolStripItemCollection Private _SelectedIndex As Integer Property SelectedIndex As Integer Get Return Me._SelectedIndex End Get Set(value As Integer) Me._SelectedIndex = value For Each Item As ToolStripMenuItem In Me.Items Item.Checked = Item.Equals(Me.Items.Item(value)) Next RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(NameOf(SelectedIndex))) End Set End Property Public Sub New(Items As ToolStripItemCollection) Me._Items = Items End Sub End Class