无法强制转换.数据网格问题中的SelectedItems

本文关键字:问题 网格 SelectedItems 数据网 数据 转换 | 更新日期: 2023-09-27 18:14:47

好吧。。。现在是星期五,时间越来越晚了,我有点虚弱。。。

代码:

public partial class SiteSelection : Window
{
    private IList<IISBrowser.IISSiteList> _siteList;
    public IList<IISBrowser.IISSiteList> SelectedItemsList { get; set; }
    public SiteSelection(IList<IISBrowser.IISSiteList> _sl)
    {
        InitializeComponent();
        _siteList = _sl;
    }
    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        this.dg_Sites.ItemsSource = _siteList;
    }
    private void btnSelectSites_Click(object sender, RoutedEventArgs e)
    {
        SelectedItemsList = (IList<IISBrowser.IISSiteList>)dg_Sites.SelectedItems;
        this.Close();
    }

填充一个数据网格,我可以在其中选择项目。带按钮(btnSelectSites(

我一直收到Unable to cast object of type 'System.Windows.Controls.SelectedItemCollection' to type 'System.Collections.Generic.IList 1[Backup.S3.Store.IISBrowser+IISSiteList]'.

不明白为什么。。。据我所知,由于我在应用于ItemSource时设置了IList<>,因此会返回相同的数据类型。。

我该怎么解决这个问题?

编辑:

已经尝试过这里的解决方案:在wpf数据网格中键入所选项目的列表,这与这里的其他解决方案类似。。。这些都不起作用。

无法强制转换.数据网格问题中的SelectedItems

使用此选项,将集合强制转换为原始类型:

SelectedItemsList = dg_Sites.SelectedItems
                            .Cast<IISBrowser.IISSiteList>()
                            .ToList();

在链接的答案中,list将是(在您的情况下(dg_Sites.SelectedItems集合。

如果using System.Linq;还没有出现,您可能还需要将其添加到类的顶部。