2013-10-02 3 views
0

Мне не удается ввести текстовое поле в виде дерева. Некоторые клавиши работают, например, пространство и обратное пространство, но не работают клавиши символов. Текстовое поле получает как события PreviewKeyDown, так и KeyDown (и эквиваленты up) для всех ключей.Невозможно ввести текстовое поле в HierarchicalDataTemplate

Привязки работают правильно, и я не получаю никаких ошибок или исключений. Я попытался прокомментировать InputBindings как в шаблоне, так и в самом окне, но это не помогло. Кстати, они также, похоже, не работают и могут быть связанной проблемой.

Текстовое поле определено в HierarchicalDataTemplate, видимость которого изменяется DataTrigger на основе статьи here.

<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> 
+0

Попробуйте удалить обработчики событий и «UpdateSourceTrigger» в вашей привязке. Еще ничего? – Sphinxxx

+0

Не помогает, нет. Обработчики событий были добавлены после того, как проблема была отмечена, и просто вывести сообщение на консоль. Удаление UpdateSourceTrigger также не изменяет поведение элементов управления, и я не ожидал этого. –

+0

Кроме того, вырезать вещи только для TextBlcok и TextBox с обоими видимыми тоже не помогают. –

ответ

0

Ответ был прост, я забыл позвонить ElementHost.EnableModelessKeyboardInterop с окном WPF.

Смежные вопросы