private void CancelSelectAllItems() { for (int i = 0; i < this.Items.Count; i++) { if (this.Items[i] is ListMenuItem) { ListMenuItem menuItem = this.Items[i] as ListMenuItem; menuItem.IsSelected = false; } } }
private void MenuItem_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { this.CancelSelectAllItems(); ListMenuItem menuItem = sender as ListMenuItem; menuItem.IsSelected = true; if (this.OnKeySelected != null) { this.OnKeySelected(this, menuItem.Text, menuItem.Key); } e.Handled = true; }
protected override void OnItemsChanged(NotifyCollectionChangedEventArgs e) { base.OnItemsChanged(e); for (int i = 0; i < this.Items.Count; i++) { if (this.Items[i] is ListMenuItem) { ListMenuItem menuItem = this.Items[i] as ListMenuItem; menuItem.MouseLeftButtonUp -= MenuItem_MouseLeftButtonUp; menuItem.MouseLeftButtonUp += MenuItem_MouseLeftButtonUp; } else { UIElement itemContent = this.Items[i] as UIElement; if (itemContent != null) { itemContent.MouseLeftButtonUp -= ItemContent_MouseLeftButtonUp; itemContent.MouseLeftButtonUp += ItemContent_MouseLeftButtonUp; } } } }