/ / Използване на команди в WPF TreeView с HierarchicalDataTemplate - wpf, преглед на дърво, команда, hierarchicaldatatemplate

Използване на команди в WPF TreeView с HierarchicalDataTemplate - wpf, treeview, команда, йерархичнаdatamplate

има ли начин да се използват команди в дървовид сHierarchicalDataTemplate, така че да мога да реагирам върху щракването върху елемент от дървото? Бих предпочел решение без код зад, ако има такова.

Ето моят TreeView:

<TreeView ItemsSource="{Binding Main.TreeItems}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Children}">
<TextBlock Text="{Binding Path=Header}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>

Отговори:

0 за отговор № 1

предоставете свойство от тип ICommand на вашия елемент (ViewModel) и се свържете с това. Така класът на артикулите ви ще бъде нещо като:

class MyTreeItem
{
public MyTreeItem()
{
this.SomeCommand = /* create command here */ null;
this.Children = new ObservableCollection<MyTreeItem>();
}

public ICommand SomeCommand { get; private set; }

public ObservableCollection<MyTreeItem> Children { get; private set; }
}

След това в xaml можете да напишете:

<TreeView ItemsSource="{Binding Main.TreeItems}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Children}">
<TextBlock Text="{TemplateBinding Header}" />
<Button Text="My Command" Command="{TemplateBinding SomeCommand}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>

Мисля, че това трябва да работи, поне по същия начин миналия път, когато го използвах :)