2011-12-22 2 views
1

Я следовал примеру в нижней части этой страницы:Нажмите событие в RibbonGalleryКатегория внутри AuxiliaryPaneContent?

http://msdn.microsoft.com/en-us/library/microsoft.windows.controls.ribbon.ribbonapplicationmenu.auxiliarypanecontent.aspx

, чтобы получить список «Новые документы». У меня есть список, заполненный, и я могу нажать на элементы в этом списке, но я не могу найти, где поймать событие click.

Мне нужно знать, когда и на какой элемент пользователь нажал в этом списке.

Как?

ответ

1

Есть два способа решить эту проблему.

Во-первых: используйте ленту. Выбранное событие. Он также поймает событие ListBox SelectionChanged, и вы сможете добавить к нему свою логику.

private void RibbonSelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     if (e.OriginalSource is Ribbon) 
     { 
      //implement your logic 
     } 
     if (e.OriginalSource is ListBox) 
     { 
      //implement your logic 
     } 
    } 

Во-вторых: я предпочитаю использовать ListView, но я думаю, что это то же самое в этом случае. Создайте свой собственный ListBox с событием Click.

public class RecentItemsList : System.Windows.Controls.ListView 
{ 
    public delegate void RecentItemClicked(object param); 

    public event RecentItemClicked Click; 
    public RecentItemsList() 
    { 
     SelectionChanged += RecentItemsList_SelectionChanged; 
     SetValue(ScrollViewer.HorizontalScrollBarVisibilityProperty, ScrollBarVisibility.Hidden); 

     //... 

    } 

    private void RecentItemsList_SelectionChanged(object sender, SelectionChangedEventArgs selectionChangedEventArgs) 
    { 
     if (SelectedIndex > -1) 
     { 
      //... 
      OnClick(); 
     } 
    } 

    private void OnClick() 
    { 
     if (Click != null) 
      Click(null); 
    } 
} 
+0

Спасибо, это указывало на меня в правильном направлении. Событие RibbonSelectionChanged не работало для меня, но внутри RibbonGalleryItem (после ItemsSource) я также добавил ленту: RibbonGalleryItem.Selected = «RibbonGalleryItem_Selected» -event, и это сработало так, как я этого хотел. – Ragowit

Смежные вопросы