DataTemplate中的TemplateBinding不起作用

时间:2017-03-07 15:19:56

标签: .net xaml uwp windows-10-universal

我正在通用Windows应用程序中创建模板化控件

问题在于<Button Content="{Binding}" Command="{TemplateBinding AddCharCommand}" /> TemplateBinding不起作用。

似乎问题是因为它是在DataTemplate内定义的。

这是Style以及应用于我的控件的模板。

<Style TargetType="local:CoordinatesControl">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="local:CoordinatesControl">

                <ListView ItemsSource="{TemplateBinding Numbers}">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <Button Content="{Binding}"
                                    Command="{TemplateBinding AddCharCommand}" />
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>

            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

1 个答案:

答案 0 :(得分:0)

您不能在TemplateBinding内使用DataTemplate,但是有一些解决方法:

  1. 您可以使用所需的DataContext为某种隐藏元素创建代理。更多详细信息,here

  2. 您可以创建一种RelativeSource绑定来查找Ancestor,就像在WPF中一样。更多详细信息here