WPF - 从DataTemplate创建UI对象

时间:2010-02-02 04:39:20

标签: c# wpf data-binding datatemplate

这与我前面提到过的question非常相似。我希望能更清楚,并得到一个不同的答案。

我有一个数据对象(称为MockUI)。它有一个数据模板(在app.xaml中),如下所示:

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

在我的代码中,我希望创建一个与数据模板相同的UI对象。所以我有myMockWI,我想知道将使用哪个模板并获取它创建的对象(在这种情况下是一个内容设置为myMockWI的按钮)。

我试过按一下按钮:

Button myButton = new Button {Content = myMockWI}

但正如您可能猜到的那样,创建按钮然后在该按钮内放置另一个按钮(因为应用了数据模板)。我怎么才能得到一个按钮?

1 个答案:

答案 0 :(得分:3)

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

如果我创建一个新的ContentControl,那么它没有Look to it并接受任何datatemplate。

所以我的代码从上面改为:

ContentControl myControl = new ContentControl {Content = myMockWI};