wpf - Bind a custom class of controls to Listview/GridView as ListViewItem -
i facing problem binding data controls in listview/gridview listviweitem.
requirement: have show checkbox, label, dropdown , textbox per row data different sources.here sample class:
class data { public checkbox chk_box; public label lbl; public combobox cmb_box; public textbox t_box; public data(string lbl_data,list<string> cmb_box_data) { chk_box=new checkbox(); lbl=new label(); lbl.content=lbl_data; cmb_box=new combobox(); cmb_box.itemssource=cmb_box_data; chk_box.click += new routedeventhandler(chk_box_clicked); ... } private void chk_box_clicked(object sender, routedeventargs e){ if(chk_box.ischecked == true) cmb_box.isenabled = false; else cmb_box.isenabled = true; } } now need add class' object listviewitem, per control per column in listview/gridview - dynamically, row row , after user makes selections access rows once again row row , values these controls.
xaml code:
<listview x:name="testgrid"> <listview.view> <gridview> <gridviewcolumn header=" select "/> <gridviewcolumn header=" label "/> <gridviewcolumn header=" cmb_box "/> <gridviewcolumn header=" t_box "/> </gridview> </listview.view> </listview>
since, items source controls different, cannot use listview.itemssorce bind data. please suggest suitable options, or ways accomplish desired ui. make out controls given in vs without using third party dll(if possible).
thank time , suggestions in advance.
check msdn.microsoft.com binding
public class datum { public bool select { get; set; } public string name { get; set; } public list<string> items { get; set; } } <listview itemssource="{binding}"> <listview.view> <gridview> <gridview.columns> <gridviewcolumn header="select"> <gridviewcolumn.celltemplate> <datatemplate> <checkbox ischecked="{binding path=select, mode=oneway}"/> </datatemplate> </gridviewcolumn.celltemplate> </gridviewcolumn> <gridviewcolumn header="name"> <gridviewcolumn.celltemplate> <datatemplate> <textblock text="{binding path=name, mode= oneway}"/> </datatemplate> </gridviewcolumn.celltemplate> </gridviewcolumn> <gridviewcolumn header="name"> <gridviewcolumn.celltemplate> <datatemplate> <combobox itemssource="{binding path=items}"/> </datatemplate> </gridviewcolumn.celltemplate> </gridviewcolumn> </gridview.columns> </gridview> </listview.view> </listview>
Comments
Post a Comment