C#,WPF,ListBox的选中问题。
我的ListBox绑定了ObservableCollection,且在Xaml里面定义了ItemTemplate,Template由一些控件比如ComboBox组成。现在...
我的ListBox绑定了ObservableCollection,且在Xaml里面定义了ItemTemplate,Template由一些控件比如ComboBox组成。
现在的问题是,我需要选中Item,但是鼠标点击Item里面的控件没法选中,只有点击Item边缘的空隙才能选中。这样操作不是很方便。如何达到鼠标选择Item的任何范围都能选中?最好是在Xaml里面实现。 展开
现在的问题是,我需要选中Item,但是鼠标点击Item里面的控件没法选中,只有点击Item边缘的空隙才能选中。这样操作不是很方便。如何达到鼠标选择Item的任何范围都能选中?最好是在Xaml里面实现。 展开
3个回答
展开全部
<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是图标跟文字组成的,可以正常选中,没遇到你的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
譬如你在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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好!希望可以帮到你!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询