我有一个 listView,其中每个项目都包含一个包含 Button 的 dataTemplate。这是由于要求单击列表项将像单击按钮一样使您进入“向导”的下一步。
DataTemplate 中的每个 Button 都包含一个 ControlTemplate。
当命令的 CanExecute 为 false 时,此 controlTemplate 中的项目将被禁用。特别是在我下面的示例中,Button 模板内的 Button(以图像为模板的那个)也被禁用。
即使禁用了与该按钮关联的命令,如何保持模板内的项目处于启用状态。
摘要:按钮的模板包含另一个按钮。当父按钮的命令被禁用时,模板内的按钮被禁用。
XAML:
<ListView.ItemTemplate>
<DataTemplate>
<Button Name="nextButton" Height="30" Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Wiz:edited}}, Path=DataContext.ACommand}" CommandParameter="{Binding}">
<Button.Template>
<ControlTemplate>
<StackPanel Orientation="Horizontal">
<Label Content="{Binding}"/>
<Button>
<Button.Template>
<ControlTemplate>
<Image Source="{Binding source}"/>
</ControlTemplate>
</Button.Template>
</Button>
</StackPanel>
</ControlTemplate>
</Button.Template>
</Button>
</DataTemplate>
</ListView.ItemTemplate>