访问C#WPF中的listview项

时间:2014-02-25 19:25:14

标签: c# wpf listview

我在我的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)
{
}

2 个答案:

答案 0 :(得分:0)

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

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

如果您只想回复双击和单个项目,请使用MouseDoubleClick并获取您的项目: ListViewItem lvi = listView.SelectedItems[0];

答案 1 :(得分:0)

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

  2. 如果您可以按照example进行操作,那么您应该可以完成 你需要什么,但你需要修改你的代码。

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

      

    私人联系_selectedContact;

         

    public Contact SelectedContact           {               得到               {                   return this._selectedContact;               }

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