c# - Code behind doesn't work as XAML -
i'm learning wpf , have troubles it. made xaml:
<window.resources> <datatemplate x:key="templatetest"> <button margin="10" borderthickness="2" content="{binding path=text}"> <button.effect> <dropshadoweffect blurradius="20" /> </button.effect> </button> </datatemplate> </window.resources> <stackpanel x:name="stackpanel"> <textbox x:name="textbox" margin="10">textbox</textbox> <contentcontrol content="{binding elementname=textbox, path=.}" contenttemplate="{staticresource resourcekey=templatetest}" /> </stackpanel> and code behind:
public partial class mainwindow : window { public mainwindow() { initializecomponent(); var resource = this.resources["templatetest"] datatemplate; stackpanel.children.add( new contentcontrol() { content = new binding() { elementname = "textbox", path = new propertypath(".") }, contenttemplate = resource, }); } } 
my problem textbox's text appear in xaml defined control. how make work in code behind too?
you're setting contentcontrol.content binding, not same binding content property value.
to bind property in code behind, need syntax this:
var newcontrol new contentcontrol(); newcontrol.contenttemplate = resource; binding b = new binding(); b.elementname = "textbox"; b.path = new propertypath("."); mycontentcontrol.setbinding(contentcontrol.contentproperty, b);
Comments
Post a Comment