我想要IEnumerable集合與ListView中的項目綁定。我也想製作一個可以從中刪除所選元素的按鈕。有沒有一種方法可以製作一個按鈕,並且當它被點擊時,從列表和集合中刪除所選元素?WPF從列表視圖中的綁定集合中刪除元素
0
A
回答
1
有幾種創建WPF應用程序的方式,我不確定您是否使用MVVM模式,但這在整個板子上會相對相同。請注意,有很多方法可以實現這一點,這只是其中之一。
假設您有一個 Person
類型。您可以將其從XAML部分或代碼隱藏在視圖的代碼隱藏文件或單獨的ViewModel
文件中。無論哪種方式,您最終都會得到一個控件,如ListView
,它能夠告訴您正在選擇的項目以及正在顯示的值。在我的ViewModel
(或簡單的窗口的代碼隱藏),與選擇工作時,我一般喜歡知道集合中被選擇的項目,所以我有這樣的特性:
// Here we are assuming that my item collection is of type Person.
private Person _selectedItem;
public Person SelectedItem
{
get { return _selectedItem; }
set
{
if (_selectedItem == value)
{
return;
}
_selectedItem = value;
OnPropertyChanged("SelectedItem");
}
}
請注意,您必須實現您的ViewModel
INotifyPropertyChanged
或代碼後面得到更新什麼已經改變:
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}
...並綁定到SelectedItem
財產我在你ListView
(內XAML)上面顯示:
所以,每當我想從我的收藏中刪除一個項目,我只是運行是這樣的:
private void Remove()
{
if (SelectedItem == null)
{
return;
}
collection.Remove(SelectedItem);
}
有許多方法,但是這是我要做的事。你甚至可以去更具體的做這樣的事情:
collection.RemoveAll(x => x.SSNNumber == SelectedItem.SSNNumber);
這真的取決於你有多創意和具體你得到。你沒有給我們很多細節,所以我在這裏猜測你的需求。
我肯定不會依賴於index
,因爲如果你在XAML中排序,而不是在你的code-behind/ViewModel中排序,那麼你在刪除過程中會得到錯誤的index
。如果您選擇index
路由,您應該在代碼中進行排序,如果您的綁定正確完成,那麼使用XAML的集合將更新爲正確的順序,並且所選項目將具有適當的索引。然而,這是一條糟糕的路線,所以我建議不要這樣做。
相關問題
- 1. 刪除綁定列表中的元素
- 2. 從集合視圖中刪除集合視圖單元格Xcode
- 3. WPF/Silverlight綁定到視圖模型元素集合的畫布
- 4. 從列表視圖中刪除列表元素
- 5. 如何從集合中刪除元素?
- 6. 從集合中刪除N元素
- 7. 從集合視圖中刪除特定單元格
- 8. WPF將GridView綁定到元素集合
- 9. 刪除元素,並從列表中刪除下列元素
- 10. 從數據庫更新/刪除列表視圖中的元素
- 11. WPF如何綁定到集合中的特定元素
- 12. 結合元組和列表的列表,從列表中刪除元組元素
- 13. Backbonejs:如何刪除視圖時取消綁定集合綁定?
- 14. 從元組列表中刪除元素
- 15. 從多列表視圖中刪除所選元素
- 16. 如何從列表視圖中刪除元素JQUERY mobile
- 17. 從列表視圖中刪除元素(刷卡或點擊)
- 18. 從列表視圖中刪除最後一個元素
- 19. 刪除列表中的特定元素
- 20. 刪除集合中的元素
- 21. 刪除集合中的元素
- 22. Java:刪除集合中的元素
- 23. 從python3的列表中刪除元素
- 24. 從複合/陣列(複合圖案)中刪除元素
- 25. 從集合中刪除模型將刪除視圖的參考
- 26. Javascript - 從集合中刪除特定元素?
- 27. 如何從列表中刪除元素
- 28. 從列表中刪除元素
- 29. 從列表中動態刪除元素
- 30. 從列表中增量刪除元素
你嘗試過什麼嗎?請花時間閱讀[How to ask](http://stackoverflow.com/help/how-to-ask)文章。 – Clemens
是的,當然有辦法做你所描述的。閱讀的一個很好的起點是MSDN上的這篇how-to文章(http://msdn.microsoft.com/en-us/library/aa970558.aspx),當然還有關於MVVM的數百篇文章在網上找到。 – Clemens