1
我一直在關注這個頁面底部的例子:單擊AuxiliaryPaneContent內RibbonGalleryCategory中的事件?
得到一個「最近的文檔」列表中。我已經填寫了列表,我可以點擊這個列表中的項目,但是我找不到要點擊事件的地方。
我需要知道用戶在此列表中單擊的時間和項目。
怎麼樣?
我一直在關注這個頁面底部的例子:單擊AuxiliaryPaneContent內RibbonGalleryCategory中的事件?
得到一個「最近的文檔」列表中。我已經填寫了列表,我可以點擊這個列表中的項目,但是我找不到要點擊事件的地方。
我需要知道用戶在此列表中單擊的時間和項目。
怎麼樣?
有兩種方法可以解決它。
首先:使用Ribbon.SelectionChanged事件。它也會捕獲你的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,但我認爲它在這種情況下是相同的。用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);
}
}
謝謝,這指出了我正確的方向。您的RibbonSelectionChanged事件對我來說不起作用,但在RibbonGalleryItem中(在ItemsSource之後),我添加了功能區:RibbonGalleryItem.Selected =「RibbonGalleryItem_Selected」-event,而且它的工作方式與我想要的一樣。 – Ragowit 2011-12-23 09:29:52