【问题标题】:WPF - Create a UI object from a DataTemplateWPF - 从 DataTemplate 创建 UI 对象
【发布时间】:2010-02-02 04:39:19
【问题描述】:

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

我有一个数据对象(称为 MockUI)。它有一个像这样的数据模板(在 app.xaml 中):

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

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

我试着只做一个按钮:

Button myButton = new Button {Content = myMockWI}

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

【问题讨论】:

  • 你能多花点时间在你的帖子上。这有点令人困惑。这有什么用例? MockWI 是 MockUI 的错字吗?您是否尝试以编程方式检索特定实例的视图(从数据模板创建)?
  • @Gishu:感谢关于需要更好帖子的提示。我想这是我自己想出来的,否则我绝对会提供更好/更多的信息。

标签: c# wpf data-binding datatemplate


【解决方案1】:

原来我只需要在 UI 树上一点点。

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

所以我的代码从上面变成了这个:

ContentControl myControl = new ContentControl {Content = myMockWI};

【讨论】:

  • 你这样做是正确的。任何从 ContentControl 派生的东西也可以使用设置了 DataType 的 DataTemplate 来承载数据对象,例如。 ContentPresenter、ListBox、ListView等
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-29
  • 2019-04-12
相关资源
最近更新 更多