WPF中如何使用代码操作数据模板生成的控件
展开全部
有一个Listbox,里面的Item是通过数据模板生成的,如下所示:<Border Margin="15" BorderBrush="Aqua" BorderThickness="2" Padding="8" CornerRadius="5"> <StackPanel> <ListBox Name="myListBox" ItemTemplate="{StaticResource myDataTemplate}" IsSynchronizedWithCurrentItem="True"> <ListBox.ItemsSource> <Binding Source="{StaticResource InventoryData}" XPath="Books/Book"/> </ListBox.ItemsSource> </ListBox> <Button Margin="10" Click="DataTemplateFindElement">Get text of textBlock in DataTemplate</Button> </StackPanel> </Border>Listbox使用的数据模板如下:<DataTemplate x:Key="myDataTemplate"> <TextBlock Name="textBlock" FontSize="14"> <TextBlock.Text> <Binding XPath="Title"/> </TextBlock.Text> </TextBlock> </DataTemplate>使用下面的代码就可以获取数据模板里面TextBlock中的内容了。
MessageBox.Show("The text of the named TextBlock in the DataTemplate of the selected list item: "+ myTextBlock.Text);上面代码调用的函数如下:private childItem FindVisualChild<childItem>(DependencyObject obj) where childItem : DependencyObject{for (int i =0; i < VisualTreeHelper.GetChildrenCount(obj); i++){DependencyObject child = VisualTreeHelper.GetChild(obj, i);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询