2015-08-21 93 views
1

我想在Listview的每個項目中使用複選框controll實現Listview。如果我想刪除兩個項目,我將檢查這兩個項目並單擊刪除它應該刪除。我對這種概念進行了更多的探索,但也無法在Github中找到單個演示示例。我不知道如何實現這些平臺。但我沒有任何示例代碼,至少爲了更好地理解「Xamarin Forms中的多選和刪除操作」使用Xamarin Forms創建多選列表(Xamarin跨平臺)

+0

我假設你已經瀏覽了所有[Xamarin.Forms示例](https://github.com/xamarin/xamarin-forms-samples)? – rubenvb

+0

您是否嘗試過在您的列表視圖中使用自定義單元格? – germi

回答

4

或者創建自定義ViewCell佈局(https://developer.xamarin.com/guides/cross-platform/xamarin-forms/user-interface/listview/customizing-cell-appearance/ - 定製單元章)

  • 綁定SwitchCell.OnPropertyYourCustomViewCell.Checkbox.CheckedPropertyViewModel.ObservableCollection.IsChecked財產(如SwitchEntryTwoBinding爲例)

  • 然後,你可以做一個ButtonToolbarItem它調用的方法,在ViewModel.ObservableCollection遍歷每個項目並刪除它,如果IsChecked=true

+0

這裏是我的代碼,當我點擊刪除按鈕時,項目中的行必須從列表視圖[Xamarin Forms]中刪除。 – user3783920

0

首先使用開關創建自定義單元格(或者執行SwitchCell)。然後將交換機的值綁定到數據模型中的bool。然後,在按鈕點擊事件上,一個簡單的Linq查詢應該可以做到。

請確保您的項目列表是ObservableCollection,因此當您刪除項目時,更改會正確傳播到ListView。

0

我們在這裏創建了一個Multi Select ListView控件。它適用於所有平臺,並且沒有平臺特定的代碼。 https://github.com/MelbourneDeveloper/Adapt.Presentation/blob/master/Adapt.Presentation.Standard/Adapt/Presentation/Controls/AdaptListView.cs

這裏有包括一個完整的示例: https://github.com/MelbourneDeveloper/Adapt.Presentation.git

這工作得很好,異步的行爲。即您可以按任意順序設置ItemsSource或SelectedItems。有一個在回購多選樣本: https://github.com/MelbourneDeveloper/Adapt.Presentation.git

還有用按鈕切換選擇模式,使您可以在列表視圖跳下來選定的記錄,或選擇多條記錄行爲: https://github.com/MelbourneDeveloper/Adapt.Presentation/blob/master/Adapt.Presentation.Standard/Adapt/Presentation/Behaviours/AdaptListViewSelectionModeToggleBehavior.cs

此行爲是相關的,因爲它可以讓你從一個ListView刪除選定的項目: https://github.com/MelbourneDeveloper/Adapt.Presentation/blob/master/Adapt.Presentation.Standard/Adapt/Presentation/Behaviours/RemoveFromCollectionBehavior.cs

不幸的是,這個目前不支持的CheckBox,但該功能可以運行,而無需複選框和我們可以在futu中添加該功能回覆。