是要窗体上的控件能够绑定到对象的属性上
应该是要类实现什么接口吧
类似于DevExpress XPO的功能, 只不过去掉对象与数据库之间的映射
应该是要类实现什么接口吧
类似于DevExpress XPO的功能, 只不过去掉对象与数据库之间的映射
解决方案 »
- C#开发,软件运行着会直接关闭……偶尔会提示软件崩溃,但是按调试什么痕迹都没留下……
- 向数据库中插入阿拉伯语显示乱码,这是为什么
- 有没有什么办法可以执行一个方法但跳过其中的某些部分?
- checkboxlist禁用后如何设置字体的颜色或者是加深字体颜色?急急急急急
- C#中生成随时间变化的随机数
- InitializeComponent() 这是一个什么东东!
- c#数字字母的全角显示的问题???
- 急!哥哥们,如何手动控制SQL SERVER 2000中的事务加锁级别问题
- 多窗体中遇到的问题(新手疑惑)
- 水晶报表中相同的数据行怎么合并为一行!
- 关于调试问题,希望高手帮忙。。。
- 想用VS2003的C#和oracle817开发,但看到网上介绍了好多连接方式,大家用那种?
public class CustomersList : CollectionBase, IBindingList
{ private ListChangedEventArgs resetEvent = new ListChangedEventArgs(ListChangedType.Reset, -1);
private ListChangedEventHandler onListChanged; public void LoadCustomers()
{
IList l = (IList)this;
l.Add(ReadCustomer1());
l.Add(ReadCustomer2());
OnListChanged(resetEvent);
} public Customer this[int index]
{
get
{
return (Customer)(List[index]);
}
set
{
List[index] = value;
}
} public int Add (Customer value)
{
return List.Add(value);
} public Customer AddNew()
{
return (Customer)((IBindingList)this).AddNew();
} public void Remove (Customer value)
{
List.Remove(value);
}
protected virtual void OnListChanged(ListChangedEventArgs ev)
{
if (onListChanged != null)
{
onListChanged(this, ev);
}
}
protected override void OnClear()
{
foreach (Customer c in List)
{
c.Parent = null;
}
} protected override void OnClearComplete()
{
OnListChanged(resetEvent);
} protected override void OnInsertComplete(int index, object value)
{
Customer c = (Customer)value;
c.Parent = this;
OnListChanged(new ListChangedEventArgs(ListChangedType.ItemAdded, index));
} protected override void OnRemoveComplete(int index, object value)
{
Customer c = (Customer)value;
c.Parent = this;
OnListChanged(new ListChangedEventArgs(ListChangedType.ItemDeleted, index));
} protected override void OnSetComplete(int index, object oldValue, object newValue)
{
if (oldValue != newValue)
{ Customer oldcust = (Customer)oldValue;
Customer newcust = (Customer)newValue;
oldcust.Parent = null;
newcust.Parent = this;
OnListChanged(new ListChangedEventArgs(ListChangedType.ItemAdded, index));
}
}
// Called by Customer when it changes.
internal void CustomerChanged(Customer cust)
{
int index = List.IndexOf(cust);
OnListChanged(new ListChangedEventArgs(ListChangedType.ItemChanged, index));
}
// Implements IBindingList.
bool IBindingList.AllowEdit
{
get { return true ; }
} bool IBindingList.AllowNew
{
get { return true ; }
} bool IBindingList.AllowRemove
{
get { return true ; }
} bool IBindingList.SupportsChangeNotification
{
get { return true ; }
}
bool IBindingList.SupportsSearching
{
get { return false ; }
} bool IBindingList.SupportsSorting
{
get { return false ; }
}
// Events.
public event ListChangedEventHandler ListChanged
{
add
{
onListChanged += value;
}
remove
{
onListChanged -= value;
}
} // Methods.
object IBindingList.AddNew()
{
Customer c = new Customer(this.Count.ToString());
List.Add(c);
return c;
}
// Unsupported properties.
bool IBindingList.IsSorted
{
get { throw new NotSupportedException(); }
} ListSortDirection IBindingList.SortDirection
{
get { throw new NotSupportedException(); }
}
PropertyDescriptor IBindingList.SortProperty
{
get { throw new NotSupportedException(); }
}
// Unsupported Methods.
void IBindingList.AddIndex(PropertyDescriptor property)
{
throw new NotSupportedException();
} void IBindingList.ApplySort(PropertyDescriptor property, ListSortDirection direction)
{
throw new NotSupportedException();
} int IBindingList.Find(PropertyDescriptor property, object key)
{
throw new NotSupportedException();
} void IBindingList.RemoveIndex(PropertyDescriptor property)
{
throw new NotSupportedException();
} void IBindingList.RemoveSort()
{
throw new NotSupportedException();
} // Worker functions to populate the list with data.
private static Customer ReadCustomer1()
{
Customer cust = new Customer("536-45-1245");
cust.FirstName = "Jo";
cust.LastName = "Brown";
return cust;
}
private static Customer ReadCustomer2()
{
Customer cust = new Customer("246-12-5645");
cust.FirstName = "Robert";
cust.LastName = "Brown";
return cust;
}
}
而且属性编辑器也找不到这个类型的变量.
这个例子你绑定过么?如果成功过, 能不能讲讲你是怎么把这个类绑定的.谢谢
但是为什么在属性编辑器里怎么不能选择到这个对象呢?XPO是可以的
还要实现其他的什么接口么?