繁体   English   中英

获取对C#WPF中的listview项目的访问权限

[英]getting access to the listview items in C# WPF

我在xaml中有以下几行代码:

 <ListView x:Name="ContactsList" MouseDoubleClick="ContactsList_MouseDoubleClick" HorizontalAlignment="Left" Height="453" Margin="10,10,0,0" VerticalAlignment="Top" Width="235" ScrollViewer.CanContentScroll="True" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> <ListView.View> <GridView> <GridViewColumn Header="LastName" Width="110" DisplayMemberBinding="{Binding LastName}" /> <GridViewColumn Header="FirstName" Width="115" DisplayMemberBinding="{Binding FirstName}" /> </GridView> </ListView.View> </ListView> 

我得到了一个数据名称为Contacts的表,这是我的addContact函数:

ContactDBEntities db = new ContactDBEntities();

 Contact newContact = new Contact(); newContact.FirstName = FName.Text; newContact.LastName = LName.Text; newContact.Mobile = Mob.Text; newContact.Telephone = Tel.Text; newContact.Mail = Mail.Text; db.Contacts.Add(newContact); db.SaveChanges(); 

我的表演联系人功能是:

 IQueryable<Contact> items = from c in db.Contacts where c.LastName.Contains(s) || c.FirstName.Contains(s) select c; ContactsList.ItemsSource = items.ToList(); 

我只想知道用户在listview中单击了哪个对象,以便我可以访问它的信息。 应该使用以下功能吗? 如果我应该写些什么呢?

 private void ContactsList_MouseDoubleClick(object sender, MouseButtonEventArgs e) { } 

钩住SelectionChanged事件以在您选择其他项时运行您的函数。 这样,无论使用什么输入设备(键盘箭头等),您的功能都将起作用。

然后在函数中读取listView.SelectedIndices ,其中包含所有选定索引的集合。

如果您只想对双击和单个项目做出响应,请使用MouseDoubleClick并通过以下方法获取您的项目: ListViewItem lvi = listView.SelectedItems[0];

  1. 在WPF中,与Winforms相比,数据绑定的处理方式完全不同。

  2. 如果可以遵循此示例 ,则应该能够完成所需的工作,但是需要修改代码。

  3. 在您的情况下,ListView中的每个项目都是一个Contact对象,因此您需要将ListView的SelectedItem属性绑定到实现INotifyPropertyChanged的类中的属性(SelectedContact)。

    私人联系人_selectedContact;

    公共联系人SelectedContact {获取{返回this._selectedContact; }

      set { if (value != this._selectedContact) { this._selectedContact= value; NotifyPropertyChanged(); } } } 
  4. 建议:如果您不使用数据绑定和通过INotifyPropertyChanged功能更改属性,那么您仍然生活在WindowsForm世界的旧世界中。 我要求您学习它并适应您的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM