C#中WPF ListView绑定数据的实例详解

C#中WPF ListView绑定数据的实例详解

WPF中ListView用来显示数据十分方便, 我们可以将它分成几个列,每一个列用来显示一条数据,但是又是在一方之中。

那么怎样实现这样的效果的呢,这就要用绑定了。

我们先来看一看他的xmal代码

<ListView Name="receiveList" Grid.Row="0"> 
            <ListView.View> 
              <GridView> 
                <GridView.Columns> 
                <GridViewColumn Header="发件人" 
                Width="200" 
                DisplayMemberBinding="{Binding Path=Senderuser}" /> 
                <GridViewColumn Header="主题" 
                Width="350" 
                DisplayMemberBinding="{Binding Path=Topic}" /> 
                <GridViewColumn Header="附件" DisplayMemberBinding="{Binding Path=Ffile}" 
                Width="200" /> 
                <GridViewColumn Header="时间" Width="150" DisplayMemberBinding="{Binding Path=Time}"/> 
               </GridView.Columns> 
              </GridView> 
            </ListView.View> 
          </ListView> 

上面的代码中每一个GridViewColumn都有一个绑定{Bind Path=作为绑定源的类中的成员属性}

下面来看一下绑定的类

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
 
namespace EmailClient 
{ 
  class MailList : INotifyPropertyChanged 
  { 
    public string senduser; 
    public string topic; 
    public string file; 
    public string time; 
    public event PropertyChangedEventHandler PropertyChanged; 
    public string Senderuser 
    { 
      get  
      { 
        return senduser; 
      } 
      set  
      { 
        senduser = value; 
        if (this.PropertyChanged != null)//激发事件,参数为Age属性  
        { 
          this.PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Age")); 
        }  
      } 
    } 
 
    public string Topic  
    { 
      get  
      { 
        return topic; 
      } 
      set  
      { 
        topic = value; 
        if (this.PropertyChanged != null)//激发事件,参数为Age属性  
        { 
          this.PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Age")); 
        }  
      } 
    } 
 
    public string Ffile 
    { 
      get  
      { 
        return file; 
      } 
      set  
      { 
        file = value; 
        if (this.PropertyChanged != null)//激发事件,参数为Age属性  
        { 
          this.PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Age")); 
        } 
      } 
    } 
 
    public string Time  
    { 
      get  
      { 
        return time; 
      } 
      set  
      { 
        time = value; 
        if (this.PropertyChanged != null)//激发事件,参数为Age属性  
        { 
          this.PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Age")); 
        } 
      } 
    } 
 
    public MailList() { } 
    public MailList(string senduser,string topic,string file,string time) 
    { 
      this.senduser = senduser; 
      this.topic = topic; 
      this.file = file; 
      this.time = time; 
    } 
  } 
} 

现在我们可以看到我们刚才绑定的属性就在这个类中,那么该怎样应用呢

下面来看一下我的应用代码

private List<MailList> maillist; 
maillist = new List<MailList>(); 

以上的代码是声明一个list来保存我们插入的数据的,由于我的源代码是从服务器中得到的邮件列表。

maillist.Add(new MailList("xxxxxx", "xxxxxxxx", "xxxxxx", "xxxxxx"));  
receiveList.ItemsSource = maillist; 

如果这样写那么那么上面的途中得到的就是xxxxxx了。

那么绑定就是这样了。

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。