Как получить родителя wpf кнопки родителя - PullRequest
3 голосов
/ 05 августа 2011

Я хочу получить родителя родителя кнопки. Я могу получить родителя, используя

Dim tempB As Button = CType(sender, Button)
Dim g1 As Grid = CType(tempB.Parent, Grid)  

(в моем обработчике кликов). Но если я сделаю

Dim g2 As New Object
g2 = g1.Parent

tempB.Content = g2.GetType 

Я получаю NullReference Exception

1 Ответ

6 голосов
/ 17 августа 2011

Вот простой фрагмент C #, который даст вам всех родителей нажатой кнопки:

   private void Button_Click(object sender, RoutedEventArgs e)
    {
        MessageBox.Show(GetParents(sender, 0));
    }

    private string GetParents(Object element, int parentLevel)
    {
        string returnValue = String.Format("[{0}] {1}", parentLevel, element.GetType());
        if (element is FrameworkElement)
        {
            if (((FrameworkElement) element).Parent != null)
                returnValue += String.Format("{0}{1}",
                    Environment.NewLine, GetParents(((FrameworkElement)element).Parent, parentLevel + 1));
        }
        return returnValue;
    }
...