Silverlight 2 Beta 2: Creating Grid at Runtime


hi there,

 i have been trying make work. out of idea. have created grid in xaml code following:
<stackpanel x:name="spgrids" verticalalignment="top" horizontalalignment="stretch" margin="20,0,20,0">
          <grid x:name="grdvalues1" verticalalignment="top" horizontalalignment="stretch">
                  <grid.columndefinitions>
                        <columndefinition width="20"></columndefinition>
                        <columndefinition width="50"></columndefinition>
                        <columndefinition width="100"></columndefinition>
                        <columndefinition width="50"></columndefinition>
                        <columndefinition width="100"></columndefinition>
                        <columndefinition width="30"></columndefinition>
                        <columndefinition width="20"></columndefinition>
                        </grid.columndefinitions>
                           
                        <textblock x:name="lblheader1" grid.column="1" text="header" textalignment="left" horizontalalignment="left" verticalalignment="top" fontweight="bold"></textblock>
                         <combobox x:name="ddlvalue1" grid.column="2" horizontalalignment="left" verticalalignment="top" width="80"></combobox>
                           
                            <textblock x:name="lblvalueheader1" grid.column="3" text="value" textalignment="left" horizontalalignment="left" verticalalignment="top" fontweight="bold"></textblock>
                            <textbox x:name="txtvaluedata1" grid.column="4" text="" textalignment="left" horizontalalignment="left" verticalalignment="top" width="90" height="20"></textbox>
                           
                            <button x:name="btnadd1" grid.column="5" content="+" fontweight="bold" width="20" height="20" horizontalalignment="center" verticalalignment="center"></button>
                        </grid>

</stackpanel>
-------------------------------------------------------
so, when click on "btnadd1", add new grid same "grdvalues1" , named "grdvalues2". btnadd1 content in "grdvalues1" change "-". , clicking on btnadd2 again in new grid, "grdvalues2", generate grid same again "grdvalues1" , known "grdvalues3". continue until reach limitation. so, if clicking on "btnadd" 3 times, "spgrids" have 3 grids same settings.

 below c# code i'm trying out.

protected void btnadd1_click(object sender, routedeventargs e)
        {
            if (btnadd1.content.tostring() == "+")
            {
                system.windows.controls.grid newgrid = new system.windows.controls.grid();
                newgrid .name = "grdvalues" + 2;
                newgrid .verticalalignment = verticalalignment.top;
                newgrid .horizontalalignment = horizontalalignment.stretch;
                newgrid .margin = new thickness(0, 10, 0, 0);               

                columndefinition newgridcolumn = new columndefinition();
                newgridcolumn .width = new gridlength(20);
                newgridcolumn .width = new gridlength(50);
                newgridcolumn .width = new gridlength(100);
                newgridcolumn .width = new gridlength(50);
                newgridcolumn .width = new gridlength(100);
                newgridcolumn .width = new gridlength(30);
                newgridcolumn .width = new gridlength(20);
                newgrid .columndefinitions.add(newgridcolumn );

                textblock newtextblock = new textblock();
                newtextblock .name = "lblheader" + 2;
                newtextblock .text = "header";
                newtextblock .textalignment = textalignment.left;
                newtextblock .horizontalalignment = horizontalalignment.left;
                newtextblock .verticalalignment = verticalalignment.top;
                newtextblock .fontweight = fontweights.bold;
                newtextblock .margin = new thickness(20, 0, 0, 0);

                combobox newcombobox = new combobox();
                newcombobox .name = "ddlvalues" + 2;
                newcombobox .horizontalalignment = horizontalalignment.left;
                newcombobox .verticalalignment = verticalalignment.top;
                newcombobox .width = 80;
             
                newgrid .children.add(newtextblock );
                newgrid .children.add(newcombobox );
                spgrids.children.add(newgrid);

                btnadd1.content = "-";
            }
            else if (btnadd1.content.tostring() == "-")
            {
               
            }
}
-----
works, doesn't give me want , totally different 1 i've created in xaml part.
questions are, creating above during runtime:
1.how add grid.row = "1", grid.column="0" controllers?
2.how add columndefinination grid?
3.how add many controllers textblock, combobox same grid. 1 did, see 1 controller. change margin. seeing 1 controller.
4. let's said had created btnadd2. so, have condition, if btnadd2 clicked, btnadd2 doesn't exist in xaml, been created during runtime. that's mean, can't directly type btnadd2 show btnadd1 in pop out window. (hope make clear.) suggestion how check whether btnadd2 exist or not?

hope have brought out questions clear. i've been trying 1 whole day. trying search online can't find related it.
please help! or there better solutions make work?

thanks!!


 hi,

and i've no idea how add grid.row , etc questions mentioned above.
 

you can set value of control grid.row using setvalue methond, , specify dependencyproperty parameter grid.rowproperty.

like below code:

 this.btn.setvalue(grid.rowproperty, 1);



Silverlight  >  Programming Silverlight with .NET – General



Comments

Popular posts from this blog

Conditional formatting a graph vertical axis in SSRS 2012 charts

Register with Power BI failed

SQL server replication error Cannot find the dbo or user defined function........