我有一個 ListView,因為它支持多項選擇,所以我有一個按鈕,我可以在其中收集所有 SelectedItems 并使用 CommandParameter 傳遞它們。對此我很陌生,我真的不知道如何使用參數。將列表傳遞給我的 ViewModel 后如何訪問該列表?請看下面的代碼:看法<ListView x:Name="ListView" ItemsSource="{Binding myModel.myCollection}"><Button Command="{Binding SelectBtnOnClickCommand}" CommandParameter="{Binding SelectedItems, ElementName=ListView}">視圖模型public class SiteListViewModel{ public ICommand AddBtnOnClickCommand { get; } private ICommand _selectBtnOnClickCommand; public ICommand SelectBtnOnClickCommand { get { if (_selectBtnOnClickCommand == null) _selectBtnOnClickCommand = new RelayCommand(o => { var selectedSites = (o as IList); if (selectedSites != null) { foreach (var model in selectedSites.OfType<SiteUrlsModel>()) { // } } }); return _selectBtnOnClickCommand; } } private readonly IWindowService _windowService; public static SiteUrlsModel SiteUrlsModel { get; } = new SiteUrlsModel(); public ObservableCollection<SiteUrlsModel> SelectedSites { get; set; } private readonly ClientContext _clientContext = new ClientContext(); public SiteListViewModel(IWindowService windowService) { _windowService = windowService; AddBtnOnClickCommand = new RelayCommand(AddBtnOnClick); //SelectBtnOnClickCommand = new RelayCommand(SelectBtnOnClick); RefreshSiteListView(); } public void AddBtnOnClick() { _addSiteWindow = new AddSite(this); _addSiteWindow.Show(); } public void SelectBtnOnClick(ObservableCollection<SiteUrlsModel> checkedList) { foreach (var site in checkedList) { site.IsChecked = true; } }
1 回答

慕桂英4014372
TA貢獻1871條經驗 獲得超13個贊
ListView.SelectedItems是一個IList:
private ICommand _selectBtnOnClickCommand;
public ICommand SelectBtnOnClickCommand
{
get
{
if (_selectBtnOnClickCommand == null)
_selectBtnOnClickCommand = new RelayCommand(o =>
{
var selectedSites = (o as IList);
if (selectedSites != null)
{
foreach (var model in selectedSites.OfType<SiteUrlsModel>())
{
//
}
}
});
return _selectBtnOnClickCommand;
}
}
- 1 回答
- 0 關注
- 110 瀏覽
添加回答
舉報
0/150
提交
取消