You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF中ListView内TextBox点击时同步选中Item并支持内容复制

解决WPF ListView中点击TextBox无法选中对应ListViewItem的问题

我之前也碰到过一模一样的问题——在ListView里放了只读的TextBox,想复制内容的时候点击TextBox,对应的ListViewItem就是不选中,得点旁边的空白区域才行。正好有个纯XAML的完美解决方案,分享给你:

问题场景回顾

你当前使用的TextBox代码如下:

<TextBox TextWrapping="WrapWithOverflow" Text="{Binding Path=Note, Mode=OneWay}" Width="512" MinWidth="512" MinHeight="70" IsReadOnly="True" TextElement.FontWeight="DemiBold" Background="Transparent" BorderThickness="0" />

核心问题在于:当TextBox获得键盘焦点时,ListViewItem不会自动触发选中状态,默认只有点击ListViewItem的非控件区域才会选中对应项。

纯XAML解决方案

只需要给你的ListView添加一段资源样式,利用触发器监听IsKeyboardFocusWithin属性——当这个属性为True(即Item内部的控件获得键盘焦点)时,自动将ListViewItem的IsSelected设为True:

<ListView.Resources>
    <Style TargetType="ListViewItem">
        <Style.Triggers>
            <Trigger Property="IsKeyboardFocusWithin" Value="True">
                <Setter Property="IsSelected" Value="True" />
            </Trigger>
        </Style.Triggers>
    </Style>
</ListView.Resources>

这样设置后,不管你点击TextBox还是Item内的其他控件,只要焦点落在ListViewItem内部,对应的Item就会自动选中,同时TextBox的只读复制功能完全不受影响,完美满足你“既能复制内容又能选中对应Item”的需求!

内容的提问来源于stack exchange,提问作者Jake Young

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:36:07