2014-09-21 2 views
1

내 응용 프로그램에서 ListBoxItemsTextBoxes으로 렌더링되는 ListBox이 있습니다. TextBox 키보드 포커스를 얻을 때마다 항목을 선택하고 싶습니다. TextBox 푼다가 초점을 맞출 때목록 상자 항목의 TextBox가 포커스를 잃을 때 선택 해제 됨

<Trigger Property="IsKeyboardFocusWithin" Value="true"> 
    <Setter Property="IsSelected" Value="true" /> 
</Trigger> 

그러나, 내가 원하지 않는 것은 해제 얻을 수있는 아이템이며,이 내가 현재 무엇을 얻을 : 나는 그것에 다음 Trigger을 적용했습니다. 예를 들어 내에서 글꼴 크기를 변경하려면 ComboBox에서 글꼴 크기를 변경할 수 없습니다.

위의 코드는 ResourceDictionary 파일의 Template에 정의되어 있습니다.

답변

3

당신은 단지 그것을

+0

는 화려한 초점을 잃어 버릴 때 자동으로 선택 해제되지 않습니다

<ListBox ...> <ListBox.ItemTemplate> <!-- your DataTemplate --> </ListBox.ItemTemplate> <ListBox.ItemContainerStyle> <Style TargetType="{x:Type ListBoxItem}"> <Style.Triggers> <EventTrigger RoutedEvent="GotKeyboardFocus"> <BeginStoryboard> <Storyboard> <BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="IsSelected"> <DiscreteBooleanKeyFrame Value="True" KeyTime="0:0:0"/> </BooleanAnimationUsingKeyFrames> </Storyboard> </BeginStoryboard> </EventTrigger> </Style.Triggers> </Style> </ListBox.ItemContainerStyle> </ListBox> 

이 방법으로 항목을

을 선택 작동 그래서이 포커스를받을 때 항목을 선택 Storyboard를 사용할 수 있습니다! 이것은 정확히 내가 필요한 것이지만, 한 가지 문제입니다. 이상하게도, 다음과 같이 코드의 선택을 어딘가에 설정할 때마다 :'SelectedTextBox = MyTexTBoxes [0]; ' 여기서 SelectedTextBox는 ListBox의 'SelectedItem'속성이 바인딩되는 속성이므로 선택되지 않습니다. 왜 이런 일이 일어나는 지 아십니까? –

+0

@ SG_90, 귀하의 경우에도 작동 했습니까? – dkozl

+0

네,하지만 제가 이전에 언급 한 문제가 나타났습니다. ViewModel에 ListBox에 새 요소를 추가하는 메서드가 있습니다. 새로 추가 된 항목이 선택되어야합니다. 이제 실제로는 ListBox를 클릭하지 않는 한 그렇지 않습니다. 그러나 당신이 생각을 가지고 있지 않으면 여기에서 타협 할 필요가 있다고 생각합니다. –

관련 문제