WPF在列表框内启用突出显示,复制和粘贴

时间:2018-08-03 16:27:01

标签: c# wpf xaml listbox

我有一个要在菜单上显示的字符串列表。我使用了一个列表框,它的工作原理就是它不会让我突出显示或复制/粘贴。

这是我的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;

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您必须使用ListBox.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>