xaml - c# DataBinding in User control Win8 -
i've observablecollection's list receives data database, , put data in grid, data binding. so, i've user control appears when click in item of grid. want text box of user control, show selected item of grid. i've tried using data binding, textbox not shows selected item.. possible ?
grid code:
<flexgrid:c1flexgrid x:name="grid" itemssource="{binding list3, mode=twoway}" autogeneratecolumns="false" horizontalalignment="left" height="431" margin="10,147,0,0" verticalalignment="top" width="1152" selectionmode="row" keepcurrentvisible="true" tapped="grid_tapped" > <flexgrid:c1flexgrid.datacontext> <local:controller/> </flexgrid:c1flexgrid.datacontext> <flexgrid:c1flexgrid.columns> <flexgrid:column binding="{binding describe}" header="describes" width="800" /> <flexgrid:column binding="{binding describenote}" header="describes notes" width="300" /> </flexgrid:c1flexgrid.columns> </flexgrid:c1flexgrid>
user control code:
<usercontrol xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:binding" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:flexgrid="using:c1.xaml.flexgrid" x:class="binding.popnotas" mc:ignorable="d" height="281.925" width="656.03"> <grid> <textbox x:name="txt2" text="{binding selecteditem.describe, elementname=grid, mode=twoway}" height="38" margin="140,5,141,0" textwrapping="wrap" verticalalignment="top"> </textbox> </grid>
cs code
public class controller : common.bindablebase { //daos public testedao dao { get; set; } private observablecollection<clpasso> _list3 = new observablecollection<clpasso>(); public observablecollection<clpasso> list3 { { return _list3; } set { this.setproperty(ref this._list3, value); } } public controller() { onnavigatedto(); } protected async void onnavigatedto() { await initializedatabase(); list3 = await createlist3(); } private async task initializedatabase() { string datbasepath = windows.storage.applicationdata.current.localfolder.path + "\\bd_example.db"; database database = new database (datbasepath); await database.initialize(); dao = new testedao(database); } public async task<observablecollection<clpasso>> createlist3() { return await dao.joinlistasync(123, "924be4cc-16db-40c2-b342-d6c1fccbec86"); } }
help!
thanks!!!
i've solved question..
so, created dependencyproperty on code behind of user control, named selection, , put in text of text box.. after, when using user control, in main page, passed value in porperty..
like this:
user control
public sealed partial class ucnotes : usercontrol { public string selection { { return (string)getvalue(selectionproperty); } set { setvalue(selectionproperty, value); } } public static readonly dependencyproperty selecionadoproperty = dependencyproperty.register("selection", typeof(string), typeof(ucnotes), new propertymetadata(null));
user control xaml
<usercontrol xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:test" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:flexgrid="using:c1.xaml.flexgrid" x:class="fiscalizacao.ucnotes" mc:ignorable="d" d:designheight="327.068" width="799.248"> <grid margin="10,0,10,10" background="#ffb2b2b2" height="303" verticalalignment="bottom"> <textbox x:name="txtselection" text="{binding selection}" height="38" margin="153,75,153,0" textwrapping="wrap" verticalalignment="top" borderbrush="black"/>
main page xaml
<flexgrid:c1flexgrid x:name="questionsgrid" horizontalalignment="left" height="417" margin="31,181,0,0" verticalalignment="top" width="1306" autogeneratecolumns="false" keepcurrentvisible="true" selectionmode="row" itemssource="{binding list, mode=twoway}"> <flexgrid:c1flexgrid.columns> <flexgrid:column binding="{binding describes}" header="descrição" width="900" /> <flexgrid:column binding="{binding descibesnotes}" header="nota" width="*" /> </flexgrid:c1flexgrid.columns> </flexgrid:c1flexgrid> <popup x:name="popnotes" islightdismissenabled="true" isopen="false" horizontalalignment="center" verticalalignment="center" grid.row="1" grid.column="1" margin="0,0,700,300" > <local:ucnotes selection="{binding selecteditem.describes, elementname=questionsgrid" /> </popup>
Comments
Post a Comment