1

このページの下部にある例に従っています。

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

「最近のドキュメント」リストを取得します。リストにデータが入力され、このリスト内の項目をクリックできますが、クリック イベントをキャッチする場所が見つかりません。

ユーザーがこのリストでいつ、どのアイテムをクリックしたかを知る必要があります。

どのように?

4

1 に答える 1

1

それを解決する方法は 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);
    }
}
于 2011-12-22T09:49:16.883 に答える