2016-07-17 7 views
0

나는 WPF를 배우며 waaaay이 간단한 작업을 해결하는 데 너무 많은 시간을 소비했습니다.RibbonComboBox 채우기

제 목표는 리본 컨트롤에 두 개의 RibbonComboBox을 추가하는 것입니다. 카테고리 중 하나는이고 다른 하나는 하위 카테고리입니다. 사용자가 범주을 변경할 때마다 하위 범주 콤보 상자를 업데이트하여 현재 범주의 하위 범주를 표시하고 싶습니다.

XAML : 나는 단지 RibbonGallery 요소를 추가하여, 나는 나 콤보 상자를 채울 수있는 방법을 액세스 할 수 있다는 것을 발견

<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> 

. 그러나 내 데이터가 목록에 표시되는 동안 항목을 사용자가 선택할 수 없습니다. (목록의 항목을 클릭해도 아무런 효과가 없습니다.)

이러한 컨트롤을 채우는 방법을 알려주는 사람이 있습니까?

참고 : 두 개의 콤보 상자를 레이블의 텍스트 길이에 관계없이 서로 정렬하는 방법을 알려줄 수있는 사람에게는 보너스가 주어집니다!

답변

1

RibbonGalleryCategory 컨트롤을 RibbonGallery 안에 추가 한 다음 채 웁니다. 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()); 
} 

자세한 내용은 CodeProject: RibbonComboBox를 참조하십시오.