2014-03-28 43 views
0

我有一個LongListSelector,我根據用戶的選擇根據我收到的數據選擇適當的DataTemplate。 還有那些我在頁面的資源定義和填充用我LongListSelector-之前設置一個合適的 - 只是的DataTemplates的3:訪問在DataTemplate中定義的StackPanel

RoutesLongListSelector.ItemTemplate = Resources["SecondItemTemplate"] as DataTemplate; 

有這些的DataTemplates -a StackPanel-,我添加一些元素填充我的名單後的孩子。

<StackPanel x:Name="MyStations" Grid.Column="1" Grid.Row="1"> 
</StackPanel> 

所以,當我嘗試使用它的名字,以增加孩子[MyStations.Children.Add(...)我得到這個錯誤:「MyStations」在目前情況下不存在。 我試圖將其中一個模板設置爲頁面的ContentPanel中的默認模板,但仍然出現相同的錯誤。

似乎是一個小問題,但我想不出什麼。 有什麼建議嗎?

+0

元素是叫不上名字直接訪問。 – kshitijgandhi

回答

1

您無法訪問DataTemplete及其Name屬性的UI元素,即x:Name。您可以使用它的加載事件來訪問它。請具體說明您的要求。數據模板中

<StackPanel x:Name="MyStations" Grid.Column="1" Grid.Row="1" 
     Loaded="MyStations_Loaded" /> 
private void MyStations_Loaded(object sender, RoutedEventArgs e) 
{ 
    var _StackPanel = (StackPanel)sender; 
} 
+0

這很有幫助,謝謝! – klitemnistra

+0

不客氣。請將其標記爲已接受,以便其他人可以從中受益。 – Xyroid