c# - WPF 在列表框中启用突出显示、复制和粘贴
问题描述
我有一个要在菜单上显示的字符串列表。我使用了一个列表框,它的工作原理是它不会让我突出显示或复制/粘贴。
这是我的 XAML
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="500"/>
<ColumnDefinition Width="500"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="450"/>
<RowDefinition Height="318"/>
</Grid.RowDefinitions>
<ListBox Grid.Row="1" Grid.Column="1" x:Name="uiOCRData" />
</Grid>
这是我在 C# 中所拥有的
List<string> lines = new List<string>();
uiOCRData.ItemsSource = lines;
谢谢您的帮助!
解决方案
您必须使用 aListBox.ItemTemplate
以便您可以在ListBox
.
由于您希望能够选择文本等,因此最好的选择是使用TextBox
.
<ListBox Grid.Row="0" Name="uiOCRData">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=.}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
编辑
假设您要绑定到一些类对象的列表,而不是简单的字符串列表。假设您的课程如下所示:
public class Data
{
public int Id { get; set; }
public string Name { get; set; }
}
然后你可以像这样绑定到任何一个选择Properties
的类:
<ListBox Grid.Row="0" Name="uiOCRData">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Width="100" Text="{Binding Name}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
推荐阅读
- visual-studio-code - VSCode SCM 标签突然消失
- python - 如何将 numpy.dtype('O') 转换为浮点数?
- vue.js - 使用删除图标调整 v-combobox 的大小
- python - 让一段代码高效处理大数据
- javascript - 在运行结束时导出为 CSV
- c# - LeetCode:三和(不能隐式转换类型)
- python-3.x - 如何根据特定列对列表字典进行排序?
- r - 如何让startsWith函数生成字符而不是R中的布尔值?
- javascript - 对于当前模块,在运行时获取所有直接导入的模块列表(Javascript/Typescript)
- momentjs - 在 moment().isValid() 中 24:00:00 的行为