C#学习教程:在Listbox.ItemTemplate中查找控件(WPFC#)我的标记:我的双击代码:privatevoidlstTimeline_MouseDoubleClick(objectsender,MouseButtonEventArgse){StackPanel项目=lbi.FindName("stkPanel")作为StackPanel;if(item!=null)MessageBox.Show("StackPanelnull");TextBlocktextBox=item.FindName("lblScreenName")asTextBlock;if(textBox!=null)MessageBox.Show("TextBlocknull");MessageBox.Show(textBox.Text);}但StackPanel是空的。如何在SelectedItem中找到正确的TextBlock?感谢您的帮助。ListBoxItemmyListBoxItem=(ListBoxItem)(lstUniqueIds.ItemContainerGenerator.ContainerFromIndex(lstUniqueIds.SelectedIndex));ContentPresentermyContentPresenter=FindVisualChild(myListBoxItem);DataTemplatemyDataTemplate=myContentPresenter.ContentTemplate;CheckBoxtarget=(CheckBox)myDataTemplate.FindName("chkUniqueId",myContentPresenter);如果(target.IsChecked){target.IsChecked=false;}else{target.IsChecked=true;}函数FindVisualChild可以在MSDN页面FrameworkTemplate.FindName方法中找到:}}returnnull;}当您要查找其名称在模板中定义的内容时,可以使用一个特定的函数。试试这个:privatevoidlstTimeline_MouseDoubleClick(objectsender,MouseButtonEventArgse){StackPanelitem=Template.FindName("stkPanel",lbi)asStackPanel;if(item!=null)MessageBox.Show("StackPanelnull");TextBlocktextBox=Template.FindName("lblScreenName",item)asTextBlock;if(textBox!=null)MessageBox.Show("TextBlocknull");MessageBox.Show(textBox.Text);Linqtoxml获取和设置模型。以上就是C#学习教程:在Listbox.ItemTemplate(WPFC#)中找到控件共享的所有内容。如果对大家有用,需要详细了解C#学习教程,希望大家多多关注——varitem=...lstTimeline.SelectedIndex=-1;lstTimeline.ItemsSource=项目;本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
