簡體   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