WPF中在listview进行数据绑定,根据绑定数据调整一列的显示

     最近在做WPF项目,对wpf界面的listview进行数据绑定,并根据绑定行的数据属于的类型在listview的一列中用不同的图片进行区分。
好的,现在说一下具体使用步骤:


第一步,先定义要绑定列表需要的集合数据的类
 public class FtpFileInformation
    {


        private bool isDirectory;
        private string filename;
        private string filetime;
        private int filesize;


        public bool IsDirectory
        {
            get { return isDirectory; }
            set
            {
                isDirectory = value;
                this.OnPropertyChanged(IsDirectory.ToString());
            }
        }
        public string Filename
        {
            get { return filename; }
            set
            {
                filename = value;
                this.OnPropertyChanged(Filename);
            }
        }
        public string Filetime
        {
            get { return filetime; }
            set
            {
                filetime = value;
                this.OnPropertyChanged(Filetime);
            }
        }
      
     
        public int Filesize
        {
            get { return filesize; }
            set
            {
                filesize = value;
                this.OnPropertyChanged(Filesize.ToString());//这个一定要有,否则集合变化了,界面不能及时刷新。
            }
        }
        public event PropertyChangedEventHandler PropertyChanged;
        protected virtual void OnPropertyChanged(string propertyName)
        {
            if (this.PropertyChanged != null)
                this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
第二步,定义要绑定的listview

                      
                        
     
         
             
                 
                     
                           
                               
                                    //在列中区分显示的图片
           

                           

                           
                                 
                                      //在列中区分显示的图片
 
 
   


 
 
 
 

 
 

 
 
 
 

 
 
 



第三步,在c#后台代码中绑定listview的源ObservableCollection ftpFileInformationn集合中 

private ObservableCollection ftpFileInformation;//用于绑定ftp浏览文件目录和文件 

ftpFileInformation=new ObservableCollection(); 

vFtpExplorer.ItemsSource = ftpFileInformation; 


第四步,在后台代码中实现列属性区分显示的类

 //区分显示文件和文件夹的图标类      

public class ViewListTemplateSelector : DataTemplateSelector     {                

 public DataTemplate FileItemTemplate { get; set; }                

 public DataTemplate FolderItemTemplate { get; set; }             

public override DataTemplate SelectTemplate(object item, DependencyObject container) 

   {            

 FtpFileInformation data = item as FtpFileInformation;             

return (data != null && data.IsDirectory ==true) ? FolderItemTemplate : FileItemTemplate;      

   }     

第五步,现在就可以在listview 的的列中

 根据绑定数据的FtpFileInformation 的IsDirectory 属性是TRUE和FALSE来在listview

 的“文件类型”的列中不同行显示不同的图片。

你可能感兴趣的:(WPF)