Dam*_*les 7 keyboard wpf listbox focus checkedlistbox
我只是想要用于Windows Forms的CheckListBox.
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Name}"/>
</DataTemplate>
</ListBox.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)
起初这似乎有效,但存在许多问题.简而言之,它就像CheckBox漂浮在真实项目上,而不是CheckBox是项目.
我的意思是,(1)单击复选框的文本将不会选择ListBox项目,(2)按向上和向下键不会聚焦复选框.我必须单击复选框才能聚焦它.我搜索过谷歌的解决方案,但没有干净的解决方案.我想要太多了吗?
我只想要CheckedListBox的行为......
我通过处理复选框的PreviewMouseDown事件并手动选择项目来解决(1)问题.它看起来不干净.
这是因为你CheckBox在ListBox.它作为列表中的项目处理,具有所有功能.
如果您只想构建一个复选框列表而不需要列表的选择逻辑,请使用ItemsControl而不是ListBox.用法是平等的.如果要使CheckboxList可滚动,请使用ScrollViewer包装ItemsControl.
<ScrollViewer>
<ItemsControl ItemsSource="{Binding YourItemsCollection">
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Name}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControls>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3450 次 |
| 最近记录: |