2012-05-04 394 views
0

我有一個關於訪問另一個元素內的元素的問題。獲取元素(父/子)內的元素WPF

情況

<grid name=container> 
    <grid name=menu > 
     inside here is the menu 
    </grid 
<button /> 
<grid> 

如果按下按鈕,第二格(通過菜單)需要隱藏。按下按鈕時如何訪問網格元素。這需要不使用網格的實際名稱,因爲它在數據模板中,並且多個對象使用相同的模板,但只有實際活動的模板需要隱藏。

+0

首先把完整的代碼當前元素。即一個與DataTemplate –

回答

1

RoutedEventArgs類具有可用於確定所需信息的Source,OriginalSource屬性。此外,發件人參數也可以在事件處理程序中使用。

以下鏈接解釋了Source,OriginalSource和Sender中的區別(也回答了問題)。 RoutedEventArgs.Source vs Sender

RoutedEventArgs.OriginalSource - 這首募事件

RoutedEventArgs.Source原來的對象 - 即引發的事件對象。這通常是一樣的OriginalSource但複合控件處理時,它可以是包含OriginalSource對象母公司*

發件人 - 這是處理事件

+0

我其實不明白。現在我使用這個代碼'Button button =(Button)e.Source as Button; ScatterViewItem item =(ScatterViewItem)ScatterView.ContainerFromElement(button);'變量Item爲我提供按鈕所在的ScatterViewItem。但是我不需要ScatterView項目,但需要在ScatterView項目中名爲「Menu」的網格。 – user1371933

+0

偷看你的源代碼,你不需要父母,但兄弟姐妹。 因爲你必須得到父母,那麼你必須找到你正在看的孩子對象。 類似於item.FindName(「menu」)。 http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.findname.aspx 請在上面的情況下輸入完整的相關源代碼並不能解決您的需求 – Tilak