2016-07-17 22 views
0

Ich lerne WPF und habe waaaay zu viel Zeit versucht, um diese einfache Aufgabe zu lösen.Populierende RibbonComboBox

Mein Ziel ist es, zwei RibbonComboBox es zu einem Ribbon-Steuerelement hinzuzufügen. Eine für Kategorien und eine andere für Unterkategorien. Wenn der Benutzer die Kategorie ändert, möchte ich die Unterkategorien Combobox aktualisieren, um die Unterkategorien für die aktuelle Kategorie anzuzeigen.

XAML:

<RibbonTab Header="Home"> 
    <RibbonGroup Header="Category"> 
     <RibbonComboBox Label="Category:" HorizontalContentAlignment="Left" SelectionBoxWidth="250" Focusable="False"> 
      <RibbonGallery Name="galCategory" DisplayMemberPath="Text" SelectedValuePath="Value"> 
      </RibbonGallery> 
     </RibbonComboBox> 
     <RibbonComboBox Label="Subcategory:" HorizontalContentAlignment="Left" SelectionBoxWidth="250"> 
      <RibbonGallery Name="galSubcategory" DisplayMemberPath="Text" SelectedValuePath="Value"> 
      </RibbonGallery> 
     </RibbonComboBox> 
    </RibbonGroup> 
</RibbonTab> 

ich, dass nur durch Zugabe des RibbonGallery Element gefunden, ich Methoden zugreifen können, die mir erlauben, das Kombinationsfeld aufzufüllen. Während meine Daten in der Liste angezeigt werden, können die Elemente jedoch nicht vom Benutzer ausgewählt werden. (Das Klicken auf Einträge in der Liste hat keinerlei Auswirkungen.)

Kann mir jemand sagen, wie man diese Steuerelemente einträgt?

Hinweis: Bonuspunkte für alle, die mir sagen können, wie die beiden Kombinationsfelder unabhängig von der Länge des Textes im Etikett ausgerichtet werden können!

Antwort

1

Fügen Sie eine RibbonGalleryCategory Steuerung in RibbonGallery hinzu und füllen Sie sie dann auf. Fügen Sie eine Ereignisauswahl ändern Hörer RibbonGallery:

XAML:

<RibbonComboBox Label="Category:" Name="rcmbCategory" SelectionBoxWidth="100" Height="20" HorizontalContentAlignment="Center"> 
    <RibbonGallery Name="galCategory" DisplayMemberPath="Text" SelectedValuePath="Value" SelectionChanged="RibbonGallery_SelectionChanged"> 
     <RibbonGalleryCategory Name="rgcCategory"/> 
    </RibbonGallery> 
</RibbonComboBox> 

.CS:

public MainWindow() 
{ 
    InitializeComponent(); 
    for(int i=0;i<=10;i++) 
     rgcCategory.Items.Add(i); 
} 

private void RibbonGallery_SelectionChanged(object sender, RoutedPropertyChangedEventArgs<object> e) 
{ 
    MessageBox.Show(rcmbCategory.SelectionBoxItem.ToString()); 
} 

für weitere Informationen zu CodeProject: RibbonComboBox finden.