RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
WPF Listbox生成方式介绍

在WPF中,有很多常用的控件可以帮助我们在实际编程中轻松的完成各种图形界面的相关需求。在这些控件中,有一个叫做WPF Listbox的控件,里面的Item是通过数据模板生成的。#t#

纳雍ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

WPF Listbox代码示例如下所示:

  1. < Border Margin="15" 
    BorderBrush="Aqua" BorderThickness="2" 
    Padding="8" CornerRadius="5"> 
  2. < StackPanel> 
  3. < ListBox Name="myListBox" 
    ItemTemplate="{StaticResource 
    myDataTemplate}" 
  4. IsSynchronizedWithCurrentItem="True"> 
  5. < ListBox.ItemsSource> 
  6. < Binding Source="{StaticResource 
    InventoryData}" XPath="Books/Book"/> 
  7. < /ListBox.ItemsSource> 
  8. < /ListBox> 
  9. < Button Margin="10" 
  10. Click="DataTemplateFindElement">
    Get text of textBlock in DataTemplate
    < /Button> 
  11. < /StackPanel> 
  12. < /Border>Listbox使用的数据模板如下: 
    < DataTemplate x:Key="myDataTemplate"> 
  13. < TextBlock Name="textBlock" 
    FontSize="14"> 
  14. < TextBlock.Text> 
  15. < Binding XPath="Title"/> 
  16. < /TextBlock.Text> 
  17. < /TextBlock> 
  18. < /DataTemplate> 

使用下面的WPF Listbox代码就可以获取数据模板里面TextBlock中的内容了。

 
 
 
  1. ListBoxItem myListBoxItem = 
    (ListBoxItem)(myListBox.Item
    ContainerGenerator.Container
    FromItem(myListBox.Items.CurrentItem));  
  2. ContentPresenter myContent
    Presenter = FindVisualChild
    < ContentPresenter>(myListBoxItem);  
  3. DataTemplate myDataTemplate 
    = myContentPresenter.ContentTemplate;   
  4. TextBlock myTextBlock = 
    (TextBlock)myDataTemplate.
    FindName("textBlock", myContent
    Presenter);  
  5. MessageBox.Show("The text of 
    the named TextBlock in the 
    DataTemplate of the selected 
    list item: " + myTextBlock.
    Text); 

上面代码调用的函数如下:

 
 
 
  1. private childItem FindVisualChild< childItem>
    (DependencyObject obj) where childItem 
    : DependencyObject  
  2. {  
  3. for (int i = 0; i <  VisualTreeHelper.
    GetChildrenCount(obj); i++)  
  4. {  
  5. DependencyObject child = VisualTree
    Helper.GetChild(obj, i);  
  6. if (child != null && child is childItem)  
  7. return (childItem)child;  
  8. else  
  9. {  
  10. childItem childOfChild = FindVisualChild
    < childItem>(child);  
  11. if (childOfChild != null)  
  12. return childOfChild;  
  13. }  
  14. }  
  15. return null;  

以上就是我们为大家介绍的WPF Listbox相关概念。


本文名称:WPF Listbox生成方式介绍
网站URL:http://www.jxjierui.cn/article/dhdggdc.html