我在我的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) { }
答案 0 :(得分:0)
勾选SelectionChanged事件,以便在选择其他项目时运行您的函数。这样,无论使用何种输入设备(键盘箭头等),您的功能都将起作用。
然后在你的函数中阅读listView.SelectedIndices
,其中包含所有选定索引的集合。
如果您只想回复双击和单个项目,请使用MouseDoubleClick并获取您的项目:
ListViewItem lvi = listView.SelectedItems[0];
答案 1 :(得分:0)
在WPF中,数据绑定以完全不同的方式处理,如 与Winforms相比。
如果您可以按照example进行操作,那么您应该可以完成 你需要什么,但你需要修改你的代码。
在您的情况下,ListView中的每个项目都是Contact
对象,所以
您需要将ListView的SelectedItem
属性绑定到
属性在实现的类中说(SelectedContact)
INotifyPropertyChanged
。
私人联系_selectedContact;
public Contact SelectedContact { 得到 { return this._selectedContact; }
set { if (value != this._selectedContact) { this._selectedContact= value; NotifyPropertyChanged(); } } }
建议:如果您没有使用数据绑定和通过INotifyPropertyChanged功能更改属性,那么您仍然生活在WindowsForm世界的旧世界中。我会要求你学习它并适应你的代码。