나는 전형적인 treeview와 viewmodel을 가지고있다. 뷰 모델에는 트리의 데이터 소스로 사용되는 다른 뷰 모델의 관찰 가능한 컬렉션이 있습니다.TreeViewItem의 KeyBinding
public class TreeViewVM {
public ObservableCollection<ItemVM> Items { get; private set; }
public ItemVM SelectedItem { get; set; }
}
과 ItemVM :
public class ItemVM {
public string Name { get; set; }
public ImageSource Image { get; private set; }
public ObservableCollection<ItemVM> Children { get; private set; }
public ICommand Rename { get; private set; }
}
뷰 :
그러나 내 명령에 상관없이 내가 한 그대로 무엇을하려고 호출되지 않습니다<TreeView Selecteditem="{Binding SelectedItem}" ItemsSource="{Binding Items}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate>
<StackPanel Orientation="Horizontal">
<StackPanel.InputBindings>
<KeyBinding Key="F2" Command="{Binding Rename}"/>
</StackPanel.InputBindings>
<Image Source="{Binding Image}"/>
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
"내부"를 HierarchicalDataTemplate .
TreeView.InputBindings (및 ItemVM에서 TreeViewVM으로의 ICommand/RelayCommand)에서 KeyBinding을 모두 움직이는 것이 좋습니다. 명령이 호출됩니다.
하지만 ItemVM에서 명령을 사용하고 싶습니다. 어떤 아이디어?
감사합니다. –
이것은 나를 위해 훌륭했습니다. ** SelectedItem **. Rename을 지적 해 주셔서 감사합니다. –
@MartinLiversage 제발, 내 질문보기 http://stackoverflow.com/questions/36865204/keybinding-in-hierarchicaldatatemplate-of-treeview – StepUp