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