Приведите MenuItem к связанному объекту - PullRequest
1 голос
/ 09 марта 2010

У меня есть SubMenu в ContextMenu, для которого ItemSource установлено выражение типа

ContextMenu.Items[i].ItemsSource = DatabaseInstance.GetAllObjects()

Когда я обрабатываю клики из ContextMenu, у меня есть этот обработчик событий: XALM:

<ContextMenu MenuItem.Click="ContextMenu_Click">

C #:

        if (e.OriginalSource as MyObject == null) {
            //Not MyObject. Choose action by comparing Header
        }
        else {
            // The clicked item is a MyObject, send to another method
        }

Но даже если OriginalSource был создан объектом типа MyObject, который я всегда получаю, он равен нулю.

Как бы я это сделал?

1 Ответ

0 голосов
/ 09 марта 2010

Вы можете получить экземпляр MenuItem в обработчике и проверить DataContext

if(((FrameworkElement)sender).DataContext is MyObject)
{
     // The clicked item is a MyObject, send to another method
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...