दिलचस्प पोस्ट
जावास्क्रिप्ट टाइम ज़ोन पिछले डेलाइट सेविंग समय संक्रमण नियमों के लिए गलत है यदि रिटर्न-रिटर्न या अगर-ऐफ-रिटर्न का उपयोग करना अधिक कुशल है? शैल स्क्रिप्ट लापता आखिरी पंक्ति पढ़ें MySQL: पंक्तियों की संख्या को गिनने का सबसे तेज़ तरीका जावा के बराबर सी # के शब्दशः स्ट्रिंग @ कोने के बाहर से $ रूट का उपयोग कैसे करें / अपडेट करें केवल समय कैसे स्टोर किया जाए; तिथि और समय नहीं? ImageIO.write jpg फ़ाइल का उपयोग करने में समस्या त्रुटि 1452: बाल पंक्ति को जोड़ या अपडेट नहीं किया जा सकता है: एक विदेशी कुंजी बाधा विफल हो जाती है टाइपस्क्रिप्ट में मूल जावास्क्रिप्ट सरणी कैसे विस्तारित करें सी में एक सूचक को कैसे संरेखित करें धागा में थ्रेड स्टार्ट विधि के लिए पैरामीटर कैसे पारित करें? उदाहरण के बारे में "व्यवहार में जावा संगतता" के बारे में सवाल सेलेनियम के साथ दृश्य में तत्व स्क्रॉल करें मैं उपयोगकर्ता के हस्तक्षेप के बिना एक ऐप (वेब ​​या इंस्टॉल) कैसे अधिकृत कर सकता हूं? (कैनोनिकल?)

लिस्ट बॉक्स आइटम वापसी स्ट्रिंग, जब DataTemplate बटन है

मैं एक WP 8.1 Silverlight ऐप का निर्माण कर रहा हूं I

मेरे पास स्ट्रिंग नामों का एक ObservableCollection है, जो एक ListBox के ItemsSource पर सेट है। ListBox में बटन के नाम क्या हैं ListBox मैं तब ListBox से बटन निकालना चाहता हूं, लेकिन रिटर्न मान टाइप string

Xaml कोड है:

 <ListBox x:Name="Game_ScrollViewer_online" Margin="41,104,128,6" SelectedValuePath="Current_game_button"> <ListBox.ItemTemplate> <DataTemplate> <Button x:Name="Current_game_button" Content="{Binding}" HorizontalAlignment="Center" Height="80" Margin="-14,6,-15,0" VerticalAlignment="Top" Width="210" Template="{StaticResource Button_CurrentLayout1}" RenderTransformOrigin="0.5,0.5" Foreground="#FFCBECCB" FontFamily="Times New Roman" Click="LoadGame_online" FontSize="16"> </Button> </DataTemplate> </ListBox.ItemTemplate> </ListBox> 

मैं तब बटन तत्व निकालना चाहता हूं:

 for (int i = 0; i < Game_ScrollViewer_online.Items.Count; i++) { var tempType = Game_ScrollViewer_online.Items[i].GetType(); Button tempBut = (Game_ScrollViewer_online.Items[i] as Button); //Do stuff with button } 

लेकिन जैसा कि कहा गया है कि वापसी का प्रकार स्ट्रिंग है

यह बटन क्यों नहीं है? और क्या इस बटन का उपयोग करने का कोई तरीका है?

वेब के समाधान से एकत्रित समाधान "लिस्ट बॉक्स आइटम वापसी स्ट्रिंग, जब DataTemplate बटन है"

आपको इस उद्देश्य के लिए FrameworkTemplate.FindName Method (String, FrameworkElement) :

 private childItem FindVisualChild<childItem>(DependencyObject obj) where childItem : DependencyObject { for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++) { DependencyObject child = VisualTreeHelper.GetChild(obj, i); if (child != null && child is childItem) return (childItem)child; else { childItem childOfChild = FindVisualChild<childItem>(child); if (childOfChild != null) return childOfChild; } } return null; } 

फिर:

 for (int i = 0; i < Game_ScrollViewer_online.Items.Count; i++) { ListBoxItem GameListBoxItem = (ListBoxItem)(Game_ScrollViewer_online.ItemContainerGenerator.ContainerFromIndex(i)); ContentPresenter contentPresenter = FindVisualChild<ContentPresenter>(GameListBoxItem); DataTemplate myDataTemplate = contentPresenter.ContentTemplate; Button tempBut = (Button) myDataTemplate.FindName("Current_game_button", contentPresenter); //Do stuff with button } 

अनुपलब्ध FindName उपयोग इस तरह FindName उपयोग करने के लिए:

 public T FindDescendant<T>(DependencyObject obj) where T : DependencyObject { if (obj is T) return obj as T; int childrenCount = VisualTreeHelper.GetChildrenCount(obj); if (childrenCount < 1) return null; for (int i = 0; i < childrenCount; i++) { DependencyObject child = VisualTreeHelper.GetChild(obj, i); if (child is T) return child as T; } for (int i = 0; i < childrenCount; i++) { DependencyObject child = FindDescendant<T>(VisualTreeHelper.GetChild(obj, i)); if (child != null && child is T) return child as T; } return null; }