C#,WPF,ListBox的选中问题。

我的ListBox绑定了ObservableCollection,且在Xaml里面定义了ItemTemplate,Template由一些控件比如ComboBox组成。现在... 我的ListBox绑定了ObservableCollection,且在Xaml里面定义了ItemTemplate,Template由一些控件比如ComboBox组成。
现在的问题是,我需要选中Item,但是鼠标点击Item里面的控件没法选中,只有点击Item边缘的空隙才能选中。这样操作不是很方便。如何达到鼠标选择Item的任何范围都能选中?最好是在Xaml里面实现。
展开
 我来答
zhangchi0420
2013-07-25
知道答主
回答量:39
采纳率:0%
帮助的人:20.1万
展开全部
<ListView Name="list_tools" Tag="tools" BorderThickness="0" Background="AliceBlue" SelectionChanged="list_tools_SelectionChanged">
                                            <ListView.ItemTemplate>
                                                <HierarchicalDataTemplate DataType="{x:Type EntityLocal:ModelEntity}" >
                                                    <StackPanel Orientation="Horizontal">
                                                        <Image VerticalAlignment="Center" Source="{Binding Path=Icon}" Width="16" Height="16" Margin="0,0,2,2"></Image>
                                                        <TextBlock VerticalAlignment="Center" Text="{Binding Name}"></TextBlock>
                                                        <StackPanel.ToolTip>
                                                            <TextBlock VerticalAlignment="Center" Text="{Binding ToolTip}" TextWrapping="Wrap" MaxWidth="200" ></TextBlock>
                                                        </StackPanel.ToolTip>
                                                    </StackPanel>
                                                </HierarchicalDataTemplate>
                                            </ListView.ItemTemplate>
                                        </ListView>

我也是第一次用WPF做东西,我这个list是图标跟文字组成的,可以正常选中,没遇到你的问题

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Mickal小米
2013-07-25 · TA获得超过3666个赞
知道大有可为答主
回答量:1542
采纳率:100%
帮助的人:1780万
展开全部
譬如你在ItemTemplate里放了一个Combobox,你是说你Combobox选不中?还是说你做某些操作的时候不能选中template里的控件。
更多追问追答
追问
点Combobox不能选中整个Item,我想要的效果是点击Item的任何部分都能选中整个Item。就拿Winform来说,如果窗体上有个textbox,我在textbox里面按下键的时候,默认不会引发Form的keydown事件,但是如果我把Form.KeyPreview设置为true,则能引发。上述ListBox有没有类似的属性或者机制?
追答
明白你意思了。我的解决方案是在Combobox中添加获取焦点的事件,通过事件找到combobox所对应的数据实体。然后再找到对应的listboxItem并对其进行IsSelected=true的操作。说起来比较复杂,上代码比较明了。
private void ComboBox_GotFocus(object sender, RoutedEventArgs e)
{
ComboBox cb = sender as ComboBox;
var selectedObject = cb.DataContext;
ListBoxItem selectedItem = listbox.ItemContainerGenerator.ContainerFromItem(selectedObject) as ListBoxItem;
if(selectedItem != null)
selectedItem.IsSelected =true;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baby相伴一生
2013-07-25
知道答主
回答量:74
采纳率:0%
帮助的人:29.4万
展开全部

你好!希望可以帮到你!

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式