我有一个要在菜单上显示的字符串列表。我使用了一个列表框,它的工作原理就是它不会让我突出显示或复制/粘贴。
这是我的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;
感谢您的帮助!
答案 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>