Microsoft Windows: ядро Windows запрещает использование символов в диапазоне 1-31 (т.е. 0x01-0x1F) и символов "*: <>? \|. Хотя NTFS позволяет каждому компоненту контура (каталог или имя файла) быть 255 символами долго и путями приблизительно до 32 767 символов в длину, ядро Windows только поддерживает пути до 259 символов в длину. Кроме того, Windows запрещает использование имен устройств MS-DOS AUX, CLOCK$, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, ДОВОД "ПРОТИВ", LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, NUL и PRN, а также эти имена с любым расширением (например, AUX.txt), кроме тех случаев, когда с помощью Долгих путей UNC (напр. \.\C:\nul.txt или \? \D:\aux\con). (На самом деле CLOCK$ может использоваться, если расширение обеспечивается.) Эти ограничения только относятся к Windows - Linux, например, позволяет использование" *: <>? \| даже в NTFS.
Источник: http://en.wikipedia.org/wiki/Filename
Верно, разобрались. Я все время пытался преобразовать его как
IList<PuzzleViewModel> collection = (IList<PuzzleViewModel>)param;
, который сказал мне, что он не может преобразовать из SelectedItemCollection в IList ...
Фактически, это то, что вам нужно сделать.
System.Collections.IList items = (System.Collections.IList)param;
var collection = items.Cast<PuzzleViewModel>();
из отражателя: -
[Category("Appearance"), Bindable(true), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public IList SelectedItems
{
get
{
return base.SelectedItemsImpl;
}
}
Выбранные элементы ListView - это IList, id хотел бы увидеть вызывающий метод.
Проверьте тип:
System.Collections.Generic.IList <(Of <(ListViewDataItem>)>)