[英]UWP Community Tookit, SlidableListView remove list item
我正在使用UWP Community Toolkit的SlidableListItem
控件。 我在列表視圖中有一些靜態列表內容。 現在,在UWP Community Toolkit示例應用程序中,我僅找到控件的XAML,而沒有找到可以在控件中找到remove按鈕的事件處理程序的代碼文件。 我想在代碼文件中為RightCommandRequested="SlidableListItem_RightCommandActivated"
寫一個事件,以便可以在列表視圖中刪除這些靜態項。
用於刪除ListView
列表項的普通代碼在這里不起作用。 請問有人知道事件處理程序的代碼嗎?
現在,在UWP Community Toolkit示例應用程序中,我僅找到控件的XAML,而沒有找到可以在控件中找到remove按鈕的事件處理程序的代碼文件。
就在這里:
在官方示例中,它使用ObservableCollection
作為ListView
的項目源,而不是靜態List,使用它的好處是這是一個動態數據集合,當添加,刪除或刷新整個列表時提供通知。 。 因此,在此示例中,它只能綁定一個名為delegateCommand DeleteItem
為RightCommand
的SlidableListItem
是這樣的:
RightCommand="{Binding DeleteItem, ElementName=Page, Mode=OneWay}"
在后面的代碼中:
private DelegateCommand<Item> _deleteItem = default(DelegateCommand<Item>);
public DelegateCommand<Item> DeleteItem => _deleteItem ?? (_deleteItem = new DelegateCommand<Item>(ExecuteDeleteItemCommand, CanExecuteDeleteItemCommand));
...
private bool CanExecuteDeleteItemCommand(Item item)
{
return true;
}
private void ExecuteDeleteItemCommand(Item item)
{
_items.Remove(item);
}
如您所見,它僅從ObservableCollection
刪除項目, ListView
的相關SlidableListItem
也將被刪除。
現在來解決您的問題,如果您想使用RightCommandRequested="SlidableListItem_RightCommandActivated"
,可以,從右向左SlidableListItem_RightCommandActivated
將觸發RightCommandRequested="SlidableListItem_RightCommandActivated"
。 問題是您的商品來源,它是一個靜態列表,以確保在列表更改時可以通知您的ListView
,您可以執行以下任一操作:
將您的靜態列表復制到ObservableCollection
然后將此ObservableCollection
綁定到ListView
的ItemsSource
上,在您的SlidableListItem_RightCommandActivated
事件中,刪除靜態列表和ObservableCollection
。
為您的靜態列表實現INotifyPropertyCanged
接口。
順便說一句,你可以在該刷卡項目SlidableListItem_RightCommandActivated
例如是這樣的:
private void SlidableListItem_RightCommandRequested(object sender, System.EventArgs e)
{
var slidableitem = sender as SlidableListItem;
var item = slidableitem.DataContext as Item;
}
如果您想演示,可以發表評論。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.