我正在将一个类从Windows窗体应用程序导航到Windows应用商店。我从互联网上获得的课程如下所示,
public class ElementList : CollectionBase
{
/// <summary>
/// A Collection of Element Nodes
/// </summary>
public ElementList()
{
}
public void Add(Node e)
{
// can't add a empty node, so return immediately
// Some people tried dthis which caused an error
if (e == null)
return;
this.List.Add(e);
}
// Method implementation from the CollectionBase class
public void Remove(int index)
{
if (index > Count - 1 || index < 0)
{
// Handle the error that occurs if the valid page index is
// not supplied.
// This exception will be written to the calling function
throw new Exception("Index out of bounds");
}
List.RemoveAt(index);
}
public void Remove(Element e)
{
List.Remove(e);
}
public Element Item(int index)
{
return (Element) this.List[index];
}
}
在上面的类中,商店应用程序中不接受CollectionBase。请告诉我一种方法来导航到Windows 8商店应用程序。 。
提前致谢!
答案 0 :(得分:2)
您不需要使用
IList
而你可以使用
List<Object>. . .
试一试。 。
它对我有用可能对你有用..
答案 1 :(得分:1)
您应该在WinRT中使用System.Collections.ObjectModel或System.Collections.Generic
CollectionBase
已过时,您应该避免使用它。
答案 2 :(得分:1)
我想我实际上已经想到了,CollectionBase继承自IList,所以我重写代码如下,
public class ElementList
{
public IList List { get; }
public int Count { get; }
public ElementList()
{
}
public void Add(Node e)
{
if (e == null)
{
return;
}
this.List.Add(e);
}
public void Remove(int index)
{
if (index > Count - 1 || index < 0)
{
throw new Exception("Index out of bounds");
}
List.RemoveAt(index);
}
public void Remove(Element e)
{
List.Remove(e);
}
public Element Item(int index)
{
return (Element)this.List[index];
}
}
如果有任何修改或者我做错了什么意思请说!
提前致谢!
答案 3 :(得分:0)
作为替代方案,您始终可以编写自己的CollectionBase
来执行相同的操作。