TextBox
要素を含むListBoxItem
テンプレートがあります。ユーザーがTextBox
をクリックすると、ListBoxItem
をSelectedItem
としてListBox
にする必要があります。WPF ListBoxItem IsSelectedプロパティは瞬時にのみ選択します
<ListBox.ItemTemplate>
<DataTemplate>
<DockPanel Margin="4,0,4,0">
<TextBlock Text="{Binding Path=Value1, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{Binding Path=Hint, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
VerticalAlignment="Center" />
<TextBox x:Name="TextField"
Margin="2,0,0,0"
Width="{Binding Path=ActWidth, Mode=OneWay}"
Visibility="{Binding Path=VisibleAct, Mode=OneWay}"
/>
</DockPanel>
</DataTemplate>
</ListBox.ItemTemplate>
私は選択を行うために、次のトリガーを持っている:私はフォーカスを変更するとき
<ListBox.Resources>
<Style TargetType="ListBoxItem">
<Style.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="IsSelected" Value="True" />
</Trigger>
</Style.Triggers>
</Style>
</ListBox.Resources>
は残念ながら、それは 一瞬のためにのみ動作し、は、選択がを消えます。 トリガーを削除すると正常に動作しますが、TextBox
を選択してもトリガーは発生しません。
選択を永久にするにはどうすればよいですか?
@ mm8私は最初の投稿を修正しました。いいえ、アイテムを1つだけ選択したいが、選択を維持する。私が言及したように、私がトリガを使用せず、アイテムを手動で選択するならば、それは機能する。 – Nestor
含まれているUserControl内の別のコントロールをクリックします。 – Nestor
IsSelectedのデフォルトのセッターを追加して、値=バインディングにすることを試してください。 – sTrenat