Back to Devexpress

BarItem.Links Property

windowsforms-devexpress-dot-xtrabars-dot-baritem-8d6101e3.md

latest4.6 KB
Original Source

BarItem.Links Property

Gets the collection of links to the bar item.

Namespace : DevExpress.XtraBars

Assembly : DevExpress.XtraBars.v25.2.dll

NuGet Package : DevExpress.Win.Navigation

Declaration

csharp
[Browsable(false)]
public virtual BarItemLinkCollection Links { get; }
vb
<Browsable(False)>
Public Overridable ReadOnly Property Links As BarItemLinkCollection

Property Value

TypeDescription
BarItemLinkCollection

A BarItemLinkCollection object representing the item’s link collection.

|

Remarks

Use the Links property to access and manage links that correspond to a bar item. You can add, delete, or customize individual item links.

Example

This example hides duplicated links (BarItemLink) based on the selected option:

csharp
using System;
using DevExpress.XtraBars;
using DevExpress.XtraBars.Ribbon;

namespace DXApplication {
    public partial class Form1 : RibbonForm {
        public Form1() {
            InitializeComponent();
        }
        void radioGroup1_SelectedIndexChanged(object sender, EventArgs e) {
            ShowAllBarItemLinks();
            switch (radioGroup1.SelectedIndex) {
                case 1:
                    ShowBarItemLinks(ribbonPageGroup1.ItemLinks);
                    break;
                case 2:
                    ShowBarItemLinks(ribbonPageGroup2.ItemLinks);
                    break;
                case 3:
                    ShowBarItemLinks(ribbonControl1.Toolbar.ItemLinks);
                    break;
                default:
                    break;
            }
        }
        void ShowBarItemLinks(BarItemLinkCollection links) {
            foreach (BarItemLink link in links) {
                HideDuplicatedLinks(link.Item, link.LinkedObject);
            }
        }
        void HideDuplicatedLinks(BarItem item, object linkedObject) {
            foreach (BarItemLink link in item.Links) {
                link.Visible = link.LinkedObject == linkedObject;
            }
        }
        void ShowAllBarItemLinks() {
            foreach (BarItem item in ribbonControl1.Items) {
                foreach (BarItemLink link in item.Links) {
                    link.Visible = true;
                }
            }
        }
    }
}
vb
Imports System
Imports DevExpress.XtraBars
Imports DevExpress.XtraBars.Ribbon

Namespace DXApplication
    Partial Public Class Form1
        Inherits RibbonForm

        Public Sub New()
            InitializeComponent()
        End Sub
        Private Sub radioGroup1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
            ShowAllBarItemLinks()
            Select Case radioGroup1.SelectedIndex
                Case 1
                    ShowBarItemLinks(ribbonPageGroup1.ItemLinks)
                Case 2
                    ShowBarItemLinks(ribbonPageGroup2.ItemLinks)
                Case 3
                    ShowBarItemLinks(ribbonControl1.Toolbar.ItemLinks)
                Case Else
            End Select
        End Sub
        Private Sub ShowBarItemLinks(ByVal links As BarItemLinkCollection)
            For Each link As BarItemLink In links
                HideDuplicatedLinks(link.Item, link.LinkedObject)
            Next link
        End Sub
        Private Sub HideDuplicatedLinks(ByVal item As BarItem, ByVal linkedObject As Object)
            For Each link As BarItemLink In item.Links
                link.Visible = link.LinkedObject Is linkedObject
            Next link
        End Sub
        Private Sub ShowAllBarItemLinks()
            For Each item As BarItem In ribbonControl1.Items
                For Each link As BarItemLink In item.Links
                    link.Visible = True
                Next link
            Next item
        End Sub
    End Class
End Namespace

See Also

ItemLinks

BarItem Class

BarItem Members

DevExpress.XtraBars Namespace