好吧...今天是星期五,时间不早了,我有点累了...
代码:
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]'.
并且不明白为什么...据我所知,因为我正在设置此 IList<>
当应用到 ItemSource 时,我将返回相同的数据类型..
我该如何解决这个问题?
编辑:
已经尝试过这里的解决方案:Type list of selected items in a wpf datagrid这与此处的其他解决方案类似......没有一个有效。
最佳答案
改用它,将集合转换为原始类型:
SelectedItemsList = dg_Sites.SelectedItems
.Cast<IISBrowser.IISSiteList>()
.ToList();
在链接的答案中,list
将是(在您的情况下)dg_Sites.SelectedItems
集合。
您可能还需要将 using System.Linq;
添加到您的类的顶部(如果它还没有的话)。
关于c# - 无法从 DataGrid 问题中转换 .SelectedItems,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24964308/