我一直在关注此页面底部的示例:
获取“最新文档”列表。我填充了列表,我可以单击此列表中的项目,但我找不到捕获单击事件的位置。
我需要知道用户在此列表中单击的时间和内容。
如何?
我一直在关注此页面底部的示例:
获取“最新文档”列表。我填充了列表,我可以单击此列表中的项目,但我找不到捕获单击事件的位置。
我需要知道用户在此列表中单击的时间和内容。
如何?
有两种方法可以解决它。
第一:使用 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);
}
}