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.csdahua.cn/qtweb/news17/263967.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网