13,347
社区成员
发帖
与我相关
我的任务
分享
this.textbox1.DataBindings.Add("Text", userEntity, "Name");
SubmitedUsersViewModel DataContext{get;set;}
private void Form1_Load(object sender, EventArgs e)
{
base.BindDataControls(this.Controls);
base.BindCommandControls(this.button1, DataContext.SubmitCurrentUsers);
base.BindCommandControls(this.button2, DataContext.UpdateUser);
base.BindCommandControls(this.button3, DataContext.RemoveUser);
}
class LocalDbContext : DbContext
{
public LocalDbContext()
: base("default")
{
//local 是连接字符串名字
}
protected override bool CheckAllTableExists()
{
//创建用户表
CheckTableExists<UserEntity>();
return true;
}
}
/// <summary>
/// 窗体载入
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected override void Form_Load(object sender, EventArgs e)
{
//设置行高以显示图片
gridViewData.RowHeight = 60;
imageZoom = new CCImageZoomcs(this, gcData);
base.Form_Load(sender, e);
//创建查询条件服务
QueryService = new EditFormService(goodsQuery, this, dxErrorProvider);
QueryService.GridLookUpEditBaseDataRegister += metaData.GetGridLookUpEditBaseMetaData;
QueryService.BindAllColumnsAndEditors();
QueryService.BindEnterQueryColumns(new KeyEventHandler((sa, ea) => { if (ea.KeyCode == Keys.Enter) bItemQuery.PerformClick(); }));
//创建列服务
GridService = new GridControlService(gcData, goodsList);
GridService.GridLookUpEditBaseDataRegister += metaData.GetGridLookUpEditBaseMetaData;
GridService.RegisterAllEditors();
GridService.SetCustomColumnSequence();
GridService.SetCustomColumnWidth();
//默认查询
//数据量大,不自动检索
}
/// <summary>
/// BA_Goods 货品信息查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected async override void bItemQuery_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
base.bItemQuery_ItemClick(sender, e);
if (e.IsCanceled()) return;
var list = await Client.PostAsync<List<ba_goodsViewModel>, ba_goodsViewQueryModel>("api/Goods/GetGoodses", goodsQuery);
goodsList = new BindingList<ba_goodsViewModel>(list);
gcData.DataSource = goodsList;
PictureService.DownLoadGoodsListMainImage(gcData, gridViewData, goodsList);
}
/// <summary>
/// BA_Goods 货品信息编辑
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected override void bItemEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
base.bItemEdit_ItemClick(sender, e);
if (e.IsCanceled()) return;
var rowData = gridViewData.GetRow(gridViewData.FocusedRowHandle);
FormGoodsEdit edit = new FormGoodsEdit(rowData, goodsList.OfType<object>().ToList(), metaData, goodsQuery);
edit.Saved += edit_Saved;
edit.ShowDialog();
}
UI层编辑页面:
/// <summary>
/// 窗体载入
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected override void Form_Load(object sender, EventArgs e)
{
base.Form_Load(sender, e);
imageZoom = new CCImageZoomcs(this, peGoodsImage, DevExpress.Utils.Win.PopupToolWindowAnchor.TopLeft);
//创建列属性服务
EditService = new EditFormService(editModel, parentModelList, this, dxErrorProvider, this.editIndex);
DynamicMetaDataCache metaData = this.metaData as DynamicMetaDataCache;
EditService.GridLookUpEditBaseDataRegister += metaData.GetGridLookUpEditBaseMetaData;
EditService.BindAllColumnsAndEditors();
//设置控件属性
if (editMode == DataEditWinMode.Edit)
{
teGoodsCode.ReadOnly = true;
lbSaveAdd.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
}
}
/// <summary>
/// 保存通用逻辑
/// </summary>
/// <param name="e"></param>
protected async override void OnSave(ResultEventArgs e)
{
//保存
if (editMode == DataEditWinMode.Add || editMode == DataEditWinMode.CopyAdd)
{
var list = await Client.PostAsync<object, ba_goodsViewModel>("api/Goods/AddGoods", (ba_goodsViewModel)editModel);
}
else
{
var list = await Client.PostAsync<object, ba_goodsViewModel>("api/Goods/UpdateGoods", (ba_goodsViewModel)editModel);
}
//将新增行加入parentModelList(此List不是BindingList不会和父窗体的列表数据同步)
if (e.SaveType == WFSaveType.SaveAdd) parentModelList.Add(this.editModel);
}
ViewModel:
public partial class ba_goodsViewModel: BaseModel, IGoodsImage
{
///<summary>
///货品编码
///</summary>
[Key, Required, StringLength(20)]
[Width(120)]
[Display(Name = "货品编码", Order = 10)]
public string GoodsCode{ get; set; }
///<summary>
///货品名称
///</summary>
[Required, StringLength(500)]
[Display(Name = "货品名称", Order = 20)]
public string GoodsName{ get; set; }
///<summary>
///货品规格
///</summary>
[StringLength(60)]
[Display(Name = "货品规格", Order = 30)]
public string Standard{ get; set; }
///<summary>
///源编码
///</summary>
[StringLength(20)]
[Display(Name = "源编码", Order = 40)]
public string SourceCode{ get; set; }
///<summary>
///货品条码:可标识单品唯一性
///</summary>
[StringLength(50)]
[Display(Name = "货品条码", Order = 50)]
public string BarCode{ get; set; }
///<summary>
///货品类目
///</summary>
[StringLength(100)]
[Display(Name = "货品类目", Order = 60)]
public string Category{ get; set; }
///<summary>
///库存单位:来自BA_Unit.UnitName
///</summary>
[Required, StringLength(20)]
[Display(Name = "库存单位", Order = 70)]
public string Unit{ get; set; }
///<summary>
///建议库位
///</summary>
[StringLength(20)]
[Display(Name = "建议库位", Order = 80)]
[EditorType(XtraEditorType.SearchLookUpEdit, false), SearchLookUpEdit(typeof(SpaceCodeMetaData))]
public string SuggestedSpace { get; set; }
///<summary>
///货品图链接:多图以分号分隔
///</summary>
[StringLength(1000), Width(100)]
[Display(Name = "货品图链接", Order = 90, AutoGenerateField = false)]
public string ImageURLs{ get; set; }
///<summary>
///父级货品
///</summary>
[StringLength(20)]
[Display(Name = "父级货品", Order = 100)]
public string ParentCode{ get; set; }
///<summary>
///属性详情:货品多种属性的文字描述,对于属性类子货品有效
///</summary>
[StringLength(10000)]
[Display(Name = "属性详情", Order = 110)]
public string Properties{ get; set; }
///<summary>
///货品详情
///</summary>
[StringLength(1000)]
[Display(Name = "货品详情", Order = 120)]
public string Description{ get; set; }
///<summary>
///状态{1 有效 / 0 无效}
///</summary>
[Required, StringLength(20)]
[Display(Name = "状态", Order = 130)]
[DefaultValue("1")]
[EditorType(XtraEditorType.CheckEdit), CheckEdit(typeof(EnumValidStatus))]
public string Status{ get; set; }
///<summary>
///货品图片
///</summary>
[Display(Name = "货品图片", Order = 140)]
[EditorType(XtraEditorType.PictureEdit), PictureEdit]
public byte[] GoodsImage { get; set; }
/// <summary>
/// 排序视图的列顺序
/// </summary>
public override Expression GetViewColumnsSequence()
{
//定义UI列排序
var columnSequence = (new List<ba_goodsViewModel>())
.AsQueryable()
.OrderBy(c => new { c.GoodsImage, c.GoodsCode, c.GoodsName, c.Standard, c.SourceCode, c.SuggestedSpace, c.BarCode, c.Category, c.Unit, c.ParentCode, c.Properties, c.Description, c.Status })
.Expression;
return columnSequence;
}
}