Я создал древовидную структуру, и теперь я хочу получить имя заголовка в виде строки для использования в ViewModel. Команда работает, но я не могу получить имя заголовка для передачи в качестве параметра в методе.получить имя заголовка в treeviewItems
Как получить имя заголовка каждый раз, когда я выбираю новый новый treeViewItem?
XAML
<TreeView Name="EquipmentTreeView">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectedItemChanged">
<i:InvokeCommandAction
Command="{Binding SelectItemCommand}"
CommandParameter="{Binding SelectedItem, ElementName=EquipmentTreeView}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<TreeViewItem Header="Camera">
<TreeViewItem Header="Digital Camera">
</TreeViewItem >
<TreeViewItem Header="Film Camera">
<TreeViewItem Header="35mm Film Sound Camera"></TreeViewItem>
<TreeViewItem Header="35mm Film MOS Camera"></TreeViewItem>
<TreeViewItem Header="Film Magazines"></TreeViewItem>
</TreeViewItem>
....
ViewModel (параметр не работает)
public class EquipmentManagerViewModel : NotifyUIBase
{
public EquipmentManagerViewModel()
{
SelectItemCommand = new RelayCommand(() => GetItemHeader(SelectedItem));
}
public RelayCommand SelectItemCommand { get; private set; }
private void GetItemHeader(string selectedHeader)
{
MessageBox.Show(selectedHeader);
}
}
Вы пробовали 'CommandParameter =" {Binding SelectedItem.Header, ElementName = EquipmentTreeView} "'? –
Фактически параметр (SelectedItem) в relayCommand выдает мне ошибку, которая не существует в текущем контексте – Phil
Забудьте о SelectedItem, вы должны передать параметр RelayCommand. Изменение, которое предлагает @Mike, не обязательно. – GreenEyedAndy