私はTreeView次の定義を持っています:
<TreeView ItemsSource="{Binding Folders, UpdateSourceTrigger=PropertyChanged}" x:Name="tree">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Folders, UpdateSourceTrigger=PropertyChanged}">
<Label Content="{Binding Name}" >
<Label.InputBindings>
<KeyBinding Key="Delete"
Command="{Binding DataContext.DeleteFolderCommand, RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl}}"/>
<MouseBinding MouseAction="LeftDoubleClick"
Command="{Binding DataContext.SelectFolderCommand, RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl}}"
CommandParameter="{Binding ElementName=tree, Path=SelectedItem}" />
</Label.InputBindings>
</Label>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
このビューは、コード ビハインド ファイルに次のように関連付けられています。
DataContext="{Binding RelativeSource={RelativeSource Self}}"
InputBindingfor は正常LeftDoubleClickに動作します。
しかし、InputBinding「削除」キーは機能しません。
がバインドされている場所は次のようになりますCommand。KeyBinding
public ICommand DeleteFolderCommand
{
get { return _deleteFolderCommand; }
set
{
_deleteFolderCommand = value;
OnPropertyChanged();
}
}
コンストラクターで次を定義します。
DeleteFolderCommand = new RelayCommand(DeleteFolder);
DeleteFolder-Method は次のようになります。
private void DeleteFolder(object parameter)
{
// Break-Point here will not be reached
}
私は何を間違っていますか?
Output-Window で Binding-Errors を確認しましたが、何もありません。