110,529
社区成员
发帖
与我相关
我的任务
分享
namespace TestApp
{
public interface IFace
{
void Update();
}
public partial class UserControl1 : UserControl
{
private List<IFace> face;
public List<IFace> Face
{
get
{
return face;
}
set
{
face = value;
}
}
public UserControl1()
{
InitializeComponent();
face = new List<IFace>();
}
}
}
this.userControl1.Face = ((System.Collections.Generic.List<TestApp.IFace>)(resources.GetObject("userControl1.Face")));
namespace TestApp
{
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
face = new List<IFace>();
}
private List<IFace> face;
public List<IFace> Face //Move down here
{
get
{
return face;
}
set
{
face = value;
}
}
}
public interface IFace // Move down here
{
void Update();
}
}
[Bindable(false), Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public List<IFace> Face
{
get
{
return face;
}
set
{
face = value;
}
}
public interface IFace
{
void Update();
}
public partial class UserControl1 : UserControl
{
private IFaceCollection _faces;
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public IFaceCollection Faces
{
get
{
if (_faces == null)
_faces = new IFaceCollection(this);
return _faces;
}
set
{
_faces = value;
}
}
public UserControl1()
{
InitializeComponent();
Faces.Add(new Demo());
Faces.Add(new Demo());
}
public class IFaceCollection : IList, ICollection, IEnumerable
{
private UserControl1 _owner;
private List<IFace> _list;
public IFaceCollection(UserControl1 owner)
{
_owner = owner;
}
public IFace this[int index]
{
get { return List[index]; }
set { List[index] = value; }
}
public UserControl1 Owner
{
get { return _owner; }
}
public List<IFace> List
{
get
{
if (_list == null)
_list = new List<IFace>();
return _list;
}
}
public int Count
{
get { return List.Count; }
}
public void Add(IFace face)
{
if (face == null)
throw new ArgumentNullException("face");
if(!Contains(face))
List.Add(face);
}
public void AddRange(ICollection<IFace> faces)
{
if (faces == null)
throw new ArgumentNullException("faces");
foreach (IFace face in faces)
{
Add(face);
}
}
public void AddRange(IFace[] faces)
{
if (faces == null)
throw new ArgumentNullException("faces");
foreach (IFace face in faces)
{
Add(face);
}
}
public void CopyTo(IFace[] faces, int arrayIndex)
{
List.CopyTo(faces, arrayIndex);
}
public void Insert(int index, IFace face)
{
List.Insert(index, face);
}
public bool Remove(IFace face)
{
return List.Remove(face);
}
public void RemoveAt(int index)
{
List.RemoveAt(index);
}
public void Clear()
{
List.Clear();
}
public bool Contains(IFace face)
{
return List.Contains(face);
}
public int IndexOf(IFace face)
{
return List.IndexOf(face);
}
public IEnumerator GetEnumerator()
{
return List.GetEnumerator();
}
#region IList 成员
int IList.Add(object value)
{
if (!(value is IFace))
throw new ArgumentException("value");
IFace face = value as IFace;
Add(face);
return IndexOf(face);
}
void IList.Clear()
{
Clear();
}
bool IList.Contains(object value)
{
if (!(value is IFace))
throw new ArgumentException("value");
IFace face = value as IFace;
return Contains(face);
}
int IList.IndexOf(object value)
{
if (!(value is IFace))
throw new ArgumentException("value");
IFace face = value as IFace;
return IndexOf(face);
}
void IList.Insert(int index, object value)
{
if (!(value is IFace))
throw new ArgumentException("value");
IFace face = value as IFace;
Insert(index, face);
}
bool IList.IsFixedSize
{
get { return false; }
}
bool IList.IsReadOnly
{
get { return false; }
}
void IList.Remove(object value)
{
if (!(value is IFace))
throw new ArgumentException("value");
IFace face = value as IFace;
Remove(face);
}
void IList.RemoveAt(int index)
{
RemoveAt(index);
}
object IList.this[int index]
{
get
{
return this[index];
}
set
{
this[index] = value as IFace;
}
}
#endregion
#region ICollection 成员
void ICollection.CopyTo(Array array, int index)
{
CopyTo((IFace[])array, index);
}
int ICollection.Count
{
get { return Count; }
}
bool ICollection.IsSynchronized
{
get { return false; }
}
object ICollection.SyncRoot
{
get { return this; }
}
#endregion
#region IEnumerable 成员
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
#endregion
}
}
public class Demo : IFace
{
public Demo() { }
#region IFace 成员
public void Update()
{
throw new Exception("The method or operation is not implemented.");
}
#endregion
}
public UserControl1()
{
InitializeComponent();
}
private void UserControl1_Load(object sender, EventArgs e)
{
face = new List<IFace>();
}