【问题标题】:Find Element in ContentControl Template在 ContentControl 模板中查找元素
【发布时间】:2014-02-03 20:26:47
【问题描述】:

我有一个 ContentControl,它的 ContentTemplate 绑定到一个 DataTemplate,包含一个网格(或某种面板)。

如何访问 ContentContorl 中的 Grid?

内容控制

<ContentControl
    x:Key="InputControl"
    Content="{Binding}"
    ContentTemplate="{Binding InputTemplate.Template}" />

数据模板

<DataTemplate x:Key="SpeechOutputTemplate">
    <Grid Height="100" Margin="132,0" x:Name="RootElement">
        <!-- content -->
    </Grid>
</DataTemplate>

使用InputControl.FindName("RootElement") 似乎对我不起作用。

顺便说一句。 ContentTemplate 更改后是否有触发事件?

【问题讨论】:

  • 看看这里:link
  • 无论你想做什么,使用 DataBinding
  • 当然......我会这样做,如果你能告诉我如何...... DataTemplate 内部是一个情节提要,必须在某些事件上启动和停止,在代码后面(等待.. )

标签: c# wpf xaml


【解决方案1】:

FrameworkElement.GetTemplateChild

GetTemplateChild 在可视树中返回命名的element,如果不存在所请求名称的元素,则返回null

FrameworkElement mElement = GetTemplateChild("InputControl") as FrameworkElement;

【讨论】:

  • 在 StackOverflow,我们更喜欢包含单词的答案...请在您的答案中添加基本解释。
  • 似乎对我不起作用..也许是因为 DataTemplate 应用于 ContentTemplate? Teleriks FindChildByType 有效,但并不完全适合我正在寻找的东西,因为此方法搜索特定类型而不是名称
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-26
  • 2014-08-28
  • 1970-01-01
相关资源
最近更新 更多