Hello i made customcontrol,First i created and registered Depencyproperty.
public static DependencyProperty textproperty;
textproperty = DependencyProperty.Register("text", typeof(string), typeof(Choosethinkness), new FrameworkPropertyMetadata(new PropertyChangedCallback(changedtext)));
public string text
{
get { return (string)GetValue(textproperty); }
set { SetValue(textproperty,value); }
}
private static void changedtext(DependencyObject
sender,DependencyPropertyChangedEventArgs e)
{
Choosethinkness ct = (Choosethinkness)sender;
string oldtext = (string)e.OldValue;
string newtext = (string)e.NewValue;
ct.eventraiser(oldtext,newtext);
}
Then i creted event which will be react on changed text in textbox.
public static readonly RoutedEvent putsthinkness = EventManager.RegisterRoutedEvent("changethinkness",RoutingStrategy.Bubble,typeof(RoutedPropertyChangedEventHandler<string>),typeof(Choosethinkness));
public event RoutedPropertyChangedEventHandler<string> changethinkness
{
add { AddHandler(putsthinkness, value); }
remove { RemoveHandler(putsthinkness, value); }
}
public void eventraiser(string oldtext,string newtext)
{
RoutedPropertyChangedEventArgs<string> args = new RoutedPropertyChangedEventArgs<string>(oldtext, newtext);
args.RoutedEvent = Choosethinkness.putsthinkness;
RaiseEvent(args);
}
further i created textbox which will be binded with textproperty.
<TextBox Name="PART_Thinknessdisplay" RenderTransformOrigin="0,0.5" Canvas.Top="41" Grid.RowSpan="2" />
At last i overriden OnApplyTemplate() method.
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
TextBox textbox = GetTemplateChild("PART_Thinknessdisplay") as TextBox;
if (textbox !=null)
{
Binding binding = new Binding("text");
binding.Source = this;
binding.Mode=BindingMode.OneWayToSource;
textbox.SetBinding(TextBox.TextProperty,binding);
}
}
Customcontrol i implement in next way.
<lib3:Choosethinkness Width="0" Height="20" Canvas.Top="45" Name="Choser" changethinkness="Choser_changethinkness_1" />
When i enter Text in Textbox there is no reaction.Tell me please what's wrong in my code,or advice me how to implement textchange event in customcontrol.