Click here to Skip to main content
15,881,413 members
Articles / Desktop Programming / WPF
Tip/Trick

WPF : TemplateBinding in code

Rate me:
Please Sign up or sign in to vote.
5.00/5 (2 votes)
14 Aug 2011CPOL 33.2K   1   1
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)


Written By
Software Developer
United Kingdom United Kingdom
Currently living and working in London. He is an enthusiastic software developer passionate about microsoft technologies, specially C#, WPF, Silverlight WCF and windows Azure. Contributes to several open source project and msdn forums.

My Blog
twitter : @sarafuddin

Comments and Discussions

 
GeneralYou can avoid the magic string in the binding by using the N... Pin
Richard Deeming19-Aug-11 7:17
mveRichard Deeming19-Aug-11 7:17 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.