各アイテムがボタンを含むdataTemplateで構成されているlistViewがあります。これは、リストアイテムをクリックすると、ボタンクリックのように機能して「ウィザード」の次のステップに移動するという要件によるものです。
DataTemplateの各ボタンには、ControlTemplateが含まれています。
コマンドのCanExecuteがfalseの場合、このcontrolTemplate内の項目は無効になります。具体的には、以下の私の例では、ボタンのテンプレート内のボタン(テンプレートとして画像を含むもの)も無効になっています。
そのボタンに関連付けられたコマンドが無効になっている場合でも、テンプレート内のアイテムを有効に保つにはどうすればよいですか。
概要:ボタンには、別のボタンを含むテンプレートがあります。親ボタンのコマンドが無効になっている場合、テンプレート内のボタンは無効になります。
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>