2010-02-02 31 views
3

这和前面提到的question非常相似。我希望更清楚并获得不同的答案。WPF - 从DataTemplate创建UI对象

我有一个数据对象(称为MockUI)。它有这样的数据模板(在App.xaml中):我想创建 UI目标的数据模板是什么

<DataTemplate DataType="{x:Type local:MockWI}"> 
    <Button Content="{Binding Name}"/> 
</DataTemplate> 

在我的代码。所以我有myMockWI,我想找出将使用哪个模板并获取它创建的对象(在这种情况下是一个内容设置为myMockWI的按钮)。

我试图只是做一个按钮:

Button myButton = new Button {Content = myMockWI} 

但正如你可能已经猜到,创建则该按钮使该按钮内的另一个按钮(因为应用数据模板)。我怎样才能得到一个按钮?

+0

你可以花你的文章一些时间..这是一个有点混乱。这有什么用途? MockWI是MockUI的一个错字吗?您是否试图以编程方式检索特定实例的视图(从数据模板创建)? – Gishu 2010-02-02 04:53:02

+0

@Gishu:感谢您提供更好的帖子。我认为我自己想出了这一个,或者我绝对会更好/更多信息。 – Vaccano 2010-02-02 05:32:03

回答

2

原来我只是需要上一下UI树。

如果我创建一个新的ContentControl,那么它没有对它进行查找并采取任何数据模式。

所以我的代码更改从上面这个:

ContentControl myControl = new ContentControl {Content = myMockWI}; 
+1

你这样做是对的。任何派生自ContentControl的东西都可以使用DataType设置DataTemplate来托管数据对象,例如。 ContentPresenter,ListBox,ListView等。 – 2010-02-02 11:40:09