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里面实现。 展开
展开全部
1 2 3 4 5 6 7 8 9 10 11 12 13 | < 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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询