我一直在关注本页底部的示例:
获取“最新文档”列表。我已填充列表,我可以单击此列表中的项目,但我找不到点击事件的位置。
我需要知道用户在此列表中点击的时间和内容。
如何?
答案 0 :(得分:1)
有两种方法可以解决它。
首先:使用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事件创建自定义ListBox。
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);
}
}