Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / desktop / WPF

WPF : TemplateBinding in code

5.00/5 (2 votes)
14 Aug 2011CPOL 33.8K  
Many people i have noticed are struggling to use templatebinding in code using TemplateBindingExtension or TemplateBindingExpression and get the error : “TemplateBindingExtension’ is not valid for Setter.Value. The only supported MarkupExtension types are DynamicResourceExtension and BindingBase or derived types”

Instead you can simple use binding as follows :

C#
var textblock = new TextBlock();
textblock.Background = Brushes.Blue;
textblock.Text = "saraf";

var binding = new Binding("Background");
binding.RelativeSource = new RelativeSource(RelativeSourceMode.Self);
BindingOperations.SetBinding(textblock, TextBlock.ForegroundProperty, binding);

//just to show the textblock.
var window = new Window();
window.Content = textblock;
window.ShowDialog();



Also if you want to do the same but bind to the TemplatedParent, simply use



RelativeSourceMode.TemplatedParent

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)