2012-04-29 35 views
3
<DataTemplate> 
    <TextBlock x:Name="Txt" Text="{Binding fieldA}" /> 
</DataTemplate> 

我想通過編程方式完成上述XAML的功能(對於XAML,我只顯示了相關位)。到目前爲止,我有:以編程方式將TextBlock添加到DataTemplate

DataTemplate newDataTemplate = new DataTemplate(); 
TextBlock newTextBlock = new TextBlock(); 
newTextBlock.SetBinding(TextBlock.TextProperty, new Binding("fieldA")); 
newTextBlock.Name = "txt"; 

所以我現在該如何將TextBlock添加到DataTemplate中..即我想要做的事,如:

newDataTemplate.children.Add(TextBlock) 

回答

7
var newTextBlock = new FrameworkElementFactory(typeof(TextBlock)); 
newTextBlock.Name = "txt"; 
newTextBlock.SetBinding(TextBlock.TextProperty, new Binding("fieldA")); 
DataTemplate newDataTemplate = new DataTemplate(){VisualTree = newTextBlock}; 

我想你應該看看這個問題。

How do I create a datatemplate with content programmatically?

+0

這是行不通的.. TextBlock的從來沒有因此導致的DataTemplate中的樹肯定是有辦法只有巴掌的TextBlock到DataTemplate中的樹。 – jsj 2012-04-29 06:55:59

+1

@ trideceth12:順便說一下,[這是棄用](http://msdn.microsoft.com/en-us/library/system.windows.frameworkelementfactory.aspx)。 – 2012-07-23 04:53:38

相關問題