Я создаю простое древовидное представление с привязкой к коллекции. Я хочу отображать полную информацию об элементе коллекции в виде списка, когда выбран элемент дерева. Похоже на Windows File Explorer. Проблема в том, что я не могу привязать выбранный элемент дерева к команде.
Попытка привязать команду к событию SelectedItemChanged с параметром имени элемента дерева - не работает. Попробовал это с простым событием - становится громоздким и ломает шаблон MVVM. Должен быть элегантный способ решить эту проблему, поскольку то, что я пытаюсь сделать, действительно широко распространено в разных приложениях.
<TreeView Grid.Row="1" Background="AliceBlue" ItemsSource="{Binding TopPanelNodes}" Name="TopTreeView" SourceUpdated="TopTreeView_SourceUpdated" >
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Nodes}">
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal" IsEnabled="False">
<TextBlock Text="{Binding Name}" >
</TextBlock>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectedItemChanged">
<i:InvokeCommandAction Command="{Binding UpdateInspectorCommand }" CommandParameter=??? />
</i:EventTrigger>
</i:Interaction.Triggers>
</TreeView>
Я бы хотел передать имя дерева в качестве параметра команды вместо ??? в моем коде выбранный элемент древовидной структуры будет идентифицирован по имени, чтобы я мог получить соответствующую информацию и привязать ее к списку.