在DataTemplate中生成的TreeViewItem中将命令绑定到Selected属性的方法是通过使用触发器来实现。以下是具体的步骤:
public ICommand MyCommand { get; set; }
public MyViewModel()
{
MyCommand = new RelayCommand(ExecuteMyCommand);
}
private void ExecuteMyCommand(object parameter)
{
// 命令执行的逻辑
}
<TreeView>
<TreeView.ItemTemplate>
<DataTemplate>
<TreeViewItem>
<TreeViewItem.Header>
<!-- 标题内容 -->
</TreeViewItem.Header>
<TreeViewItem.Style>
<Style TargetType="TreeViewItem">
<Setter Property="IsSelected" Value="False"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Command" Value="{Binding DataContext.MyCommand, RelativeSource={RelativeSource AncestorType={x:Type local:MyView}}}" />
<Setter Property="CommandParameter" Value="{Binding}" />
</Trigger>
</Style.Triggers>
</Style>
</TreeViewItem.Style>
</TreeViewItem>
</DataTemplate>
</TreeView.ItemTemplate>
</TreeView>
上述代码中,首先设置TreeViewItem的IsSelected属性为False,然后使用触发器来当IsSelected属性的值为True时执行命令。在触发器中,将命令绑定到命令属性,同时设置CommandParameter为绑定的数据项。
需要注意的是,上述代码中的MyView需要替换为实际的View的类名,并确保命令属性的DataContext正确设置。
以上是将命令绑定到在DataTemplate中生成的TreeViewItem的Selected属性的方法。
领取专属 10元无门槛券
手把手带您无忧上云