2013-04-23 89 views
0

我針對Windows Phone 8,我想訪問名爲ListHeaderStackPanel的我的StackPanel,它位於LongListSelectorDataTemplate中。我的代碼看起來如下以編程方式訪問LongListSelector DataTemplate控件

<DataTemplate x:Key="ListHeader"> 
    <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,10,0,0"> 
     <StackPanel x:Name="ListHeaderStackPanel" HorizontalAlignment="Left" Height="8" VerticalAlignment="Top" Width="8"> 
     </StackPanel> 
    </Grid> 
</DataTemplate> 

這可能嗎?我已經嘗試過使用FindName而沒有運氣,只是從代碼中使用ListHeaderStackPanel將無法工作。

+1

您可以嘗試使用'VisualTreeHelper'類走可視化樹。這裏有一個通用的實現,可以幫助http://stackoverflow.com/a/5191681/187697 – keyboardP 2013-04-23 19:59:15

+0

我試過了,通過傳遞給我的LongListSelector和LongListSelector.ListHeaderTemplate,不幸的是,它們爲StackPanel項目返回null。 – 2013-04-23 20:25:09

+0

我只是試了一下,它對我很有幫助:'HelperClass.FindDescendant (lls.ListHeaderTemplate.LoadContent());'不要忘記,儘可能嘗試利用DataBinding是個好主意(如果這是你嘗試訪問控件的原因)。 – keyboardP 2013-04-23 20:42:37

回答

0

我使用VisualTreeHelper,即keyboardP在第一條評論中提出的建議,找到StackPanel

您可以嘗試使用VisualTreeHelper類來遍歷Visual Tree。 這裏有一個通用的實現,可以幫助 stackoverflow.com/a/5191681/187697

+0

嗨,我也使用LLS,你可以給解決方案訪問LLS數據模板內的元素。 – Noorul 2014-10-21 12:23:46