1
나는이 페이지의 하단에있는 예를 다음되었습니다AuxiliaryPaneContent의 RibbonGalleryCategory에서 이벤트를 클릭 하시겠습니까?
는 "최근 문서"목록을 얻을 수 있습니다. 목록이 채워져 있고이 목록의 항목을 클릭 할 수는 있지만 클릭 이벤트를 잡을 위치를 찾을 수 없습니다.
사용자가이 목록에서 클릭 한 항목과시기를 알아야합니다.
어떻게?
나는이 페이지의 하단에있는 예를 다음되었습니다AuxiliaryPaneContent의 RibbonGalleryCategory에서 이벤트를 클릭 하시겠습니까?
는 "최근 문서"목록을 얻을 수 있습니다. 목록이 채워져 있고이 목록의 항목을 클릭 할 수는 있지만 클릭 이벤트를 잡을 위치를 찾을 수 없습니다.
사용자가이 목록에서 클릭 한 항목과시기를 알아야합니다.
어떻게?
두 가지 방법으로 해결할 수 있습니다.
첫 번째 : Ribbon.SelectionChanged 이벤트를 사용하십시오. ListBox SelectionChanged 이벤트도 catch하고 논리를 추가 할 수 있습니다.
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);
}
}
감사합니다. 올바른 방향으로 안내해 주셔서 감사합니다. 귀하의 RibbonSelectionChanged 이벤트가 나를 위해 작동하지 않았지만 RibbonGalleryItem (ItemsSource 이후) 내에서 리본을 추가 했으므로 RibbonGalleryItem.Selected = "RibbonGalleryItem_Selected"-event를 사용하여 원하는대로 작동했습니다. – Ragowit