WPF ListBox コントロールでマウスを使用して単一の単語を選択することは可能ですか? はいの場合、どうすればそれを行うことができますか?
すべてのヒントは大歓迎です:)
に を定義するItemTemplate
とListBox
、 を使用しTextBox
て各アイテムを表示できます (アイテムがプレーンな であると仮定しますstring
)。
<ListBox ItemsSource="{Binding YourCollection}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding}" IsReadOnly="True" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
更新 >>>
Binding.Mode
私はちょうどそれをテストし、プロパティを設定するために1つの変更を加える必要がOneWay
あり、それはうまくいきました. TextBox
しかし、 で各項目が選択されなくなることに気付いたので、それStyle
を処理するために を追加し、項目のスタイルも少し変更しました。
<ListBox ItemsSource="{Binding YourCollection}" Name="ListBox" HorizontalContentAlignment="Stretch">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding ., Mode=OneWay}" IsReadOnly="True">
<TextBox.Style>
<Style>
<Setter Property="TextBox.BorderThickness" Value="0" />
</Style>
</TextBox.Style>
</TextBox>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemContainerStyle>
<Style>
<Style.Triggers>
<Trigger Property="ListBox.IsKeyboardFocusWithin" Value="True">
<Setter Property="ListBoxItem.IsSelected" Value="True" />
</Trigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>