WPF - 从 DataTemplate 创建 UI 对象

发布于 2024-08-20 02:49:21 字数 613 浏览 3 评论 0原文

这与我之前提出的问题非常相似。我希望能更清楚并得到不同的答案。

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

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

在我的代码中,我想要创建一个 UI 对象来表示数据模板。所以我有 myMockWI,我想找出将使用什么模板并获取它创建的对象(在本例中是一个内容设置为 myMockWI 的按钮)。

我尝试只制作一个按钮:

Button myButton = new Button {Content = myMockWI}

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

This is very similar to this question I asked earlier. I am hoping to be clearer and get a different answser.

I have a Data Object (called MockUI). It has a data template (in app.xaml) like this:

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

In my code I want create a UI object that what the data template is. So I have myMockWI and I want to find out what template that would use and get the object it creates (in this case a button with the content set to myMockWI).

I have tried to just make a button:

Button myButton = new Button {Content = myMockWI}

but as you can probably guess, that creates the button then puts another button inside that button (because the data template is applied). How can I get one button only?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜司空 2024-08-27 02:49:21

事实证明,我只需要稍微向上移动一下 UI 树即可。

如果我创建一个新的 ContentControl,那么它不会查找它并采用任何数据模板。

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

ContentControl myControl = new ContentControl {Content = myMockWI};

Turns out that I just needed to go up the UI tree a bit.

If I make a new ContentControl then it has no Look to it and takes on whatever the datatemplate is.

So my code changes from above to this:

ContentControl myControl = new ContentControl {Content = myMockWI};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文