我正在通用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>

最佳答案

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

  • 您可以使用所需的DataContext为某种隐藏元素创建某种代理。更多详细信息here
  • 您可以创建某种RelativeSource绑定(bind)来查找Ancestor,就像在WPF中一样。更多详细信息here
  • 关于.net - DataTemplate内部的TemplateBinding无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42651984/

    10-11 05:19