为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 CommandParameter 发送列表

如何使用 CommandParameter 发送列表

C#
慕神8447489 2022-06-12 15:06:04
我有一个 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;

    }

}


查看完整回答
反对 回复 2022-06-12
  • 1 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信