WPF - 从 DataTemplate 创建 UI 对象
这与我之前提出的问题非常相似。我希望能更清楚并得到不同的答案。
我有一个数据对象(称为 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
事实证明,我只需要稍微向上移动一下 UI 树即可。
如果我创建一个新的 ContentControl,那么它不会查找它并采用任何数据模板。
所以我的代码从上面更改为:
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: