我无法在树视图上输入文本框。有些键确实有效,例如空格键和退格键,但没有字符键有效。文本框正在获取所有键的 PreviewKeyDown 和 KeyDown 事件(以及 up 等价物)。
绑定工作正常,我没有收到任何错误或异常。我尝试在模板和窗口本身中注释掉 InputBindings,但这并没有帮助。顺便说一句,它们似乎也不起作用,并且可能是一个相关问题。
文本框在 HierarchicalDataTemplate 中定义,其可见性由 DataTrigger 更改,基于此处的文章。
<HierarchicalDataTemplate x:Key="projectItemTemplate" ItemsSource="{Binding Path=Children}">
<StackPanel Orientation="Horizontal">
<TextBlock Name="tb" Text="{Binding Path=Name}"/>
<TextBox Name="etb" Text="{Binding Path=Name, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Visibility="Collapsed" PreviewKeyDown="etb_PreviewKeyDown" KeyDown="etb_KeyDown">
<TextBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding Path=RenameCommand}"/>
<KeyBinding Key="Return" Command="{Binding Path=RenameCommand}"/>
</TextBox.InputBindings>
</TextBox>
</StackPanel>
<HierarchicalDataTemplate.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=IsEditingName}" Value="True"/>
<Condition Binding="{Binding Path=IsActive}" Value="True"/>
</MultiDataTrigger.Conditions>
<Setter TargetName="tb" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="etb" Property="Visibility" Value="Visible"/>
</MultiDataTrigger>
</HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>