このページの下部にある例に従っています。
「最近のドキュメント」リストを取得します。リストにデータが入力され、このリスト内の項目をクリックできますが、クリック イベントをキャッチする場所が見つかりません。
ユーザーがこのリストでいつ、どのアイテムをクリックしたかを知る必要があります。
どのように?
このページの下部にある例に従っています。
「最近のドキュメント」リストを取得します。リストにデータが入力され、このリスト内の項目をクリックできますが、クリック イベントをキャッチする場所が見つかりません。
ユーザーがこのリストでいつ、どのアイテムをクリックしたかを知る必要があります。
どのように?
それを解決する方法は 2 つあります。
最初: 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
}
}
2番目: 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);
}
}