요약 : 목록 상자 항목을 클릭하면 DataTemplate의 텍스트 상자에 포커스가 있지만 listBox 항목이 선택되지 않습니다.WPF - ListBox ContentTemplate textbox 목록 상자 항목을 선택하지 않게하는 MouseDown
이것은 이벤트 버블 링과 관련이 있지만 여기에는 뭔가 빠져 있습니다.
나는 ListBox를 가지고 있습니다. 각 ListBoxItem의 ContentTemplate은 간단한 텍스트 상자를 포함하는 DataTemplate에 할당됩니다.
이 TextBox는 편집 가능한 가짜 레이블로 표시되도록 설계되었습니다.
문제점 : 입력란을 클릭하면 ListBox의 selectedItem이 업데이트되지 않습니다. 텍스트 상자가 mousedown 이벤트를 삼키고 있으며 목록 상자에 새 항목을 업데이트하라는 메시지가 표시되지 않습니다.
내가 바보 같은 것을 놓치고있는 것처럼 느껴진다. 어떤 아이디어? 이벤트가 상위 ListView에 강제로 표시되도록하는 방법이 있습니까?
나는 텍스트 상자의 배경 널을 previewmousedown 이벤트를 처리하고 e.handled = false;로 설정하는 모든 것을 시도했다.
DataTemplate을 :
<DataTemplate x:Key="ItemTempl">
<TextBox Height="20" Width="200" Name="tbox" Text="{Binding WordText}" HorizontalAlignment="Stretch">
<TextBox.Style>
<Style TargetType="TextBox">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Background" Value="{x:Null}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsFocused, ElementName=tbox}" Value="True">
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Background" Value="White"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
</DataTemplate>
목록보기 :
<ListView HorizontalAlignment="Stretch" ItemsSource="{Binding Something.Words}" Name="MainListView" SelectedItem="{Binding CurrentItem, Mode=TwoWay}" BorderThickness="0" ItemContainerStyle="{StaticResource ContainerStyle}">
</ListView>
ListView에 'ItemTempl'이 사용되지 않습니다. 또한 'ContainerStyle'이 무엇인지 설명하지 않았습니다. – Blachshma