C# Ribbon-Menü mit Subitems versehen

xxtekilaxx

Cadet 4th Year
Registriert
März 2008
Beiträge
70
Hallo zusammen,

hätte hier mal eine Frage zum Ribbonmenü in C#

Ich habe folgenden Code:
Code:
public static void menu()
        {
            Dictionary<string, string> dict = new Dictionary<string, string>(); //dictionary anlegen
            string[] txt = File.ReadAllLines(@"C:\Users\aczichon\Documents\rss.txt"); //txt einlesen
            foreach (string line in txt) //einzelne zeilen einlesen
            {
                string[] splitted = line.Split(';'); //zeile splitten
                dict.Add(splitted[0], splitted[1]); //werte in das dictionary übergeben
            }
            
            foreach (string value in dict.Values)
            {
                RibbonMenu firstmenu = Globals.Ribbons.Ribbon1.Factory.CreateRibbonMenu(); //Ribbonmenü erstellen
                firstmenu.Label = value; //Wert eintragen
                firstmenu.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeRegular; //Größe einstellen
                Globals.Ribbons.Ribbon1.feeds.Items.Add(firstmenu); //Item hinzufügen
            }

        }

Welcher mir aktuell folgendes Ergebnis liefert:
http://www.abload.de/img/unbenannt2wumw.jpg

Und nun möchte ich einige Unteritems (Sprich wenn ich auf test oder test2 gehe, soll dort z.b. test3, test4 folgen) erstellen.
Wie ist dies zu realisieren?

Gruß
xxtekilaxx
 
Ähn so geht es sicher nicht! Du hast einen 1 Dim Array... für mehrere Untermenüs brauchst X Dim Array, das deine Baum vom dem Menü abbildet.

Ich rate dir daher auf Dictionary zu verzichten und eine Klasse schreiben, die deine Daten verwaltet.


Code:
Class PlaceHolder
{
    public String RSSPrimaryText;
    ///Alle deine Submenüs.
    public List<String> RSSSecondaryText;
    ///Erstelle alles andere
    ....
}
    List<PlaceHolder> list = new List<PlaceHolder>();
    string[] txt = File.ReadAllLines(@"C:\Users\aczichon\Documents\rss.txt"); //txt einlesen
    foreach (string line in txt) //einzelne zeilen einlesen
    {
        string[] splitted = line.Split(';'); //zeile splitten
        ///Besorge dir hier auch deine SubItems für den Submenü.
        .....
        list.Add(new PlaceHolder(PrimaryString, SecondaryString));
    }

sowas in der Art!
Natürlich muss du die Untermenüs noch einbinden.

Code:
firstmenu.AddSubMenu(...);

AddSubMenu ist frei erfunden, da ich den Ribbon net benutze, aber du hast ja InteliSense. Blättere mal die Einträge durch!
 
Zurück
Oben