【问题标题】:using TextBoxes inside a ListBox在 ListBox 中使用 TextBoxes
【发布时间】:2023-03-17 18:09:01
【问题描述】:

我有一个列表框,其中显示了标题列表。用户单击该行以选择填充更多文本框的项目。

但是,我在列表框的每一行中使用的文本框不可点击 - 光标变为文本选择光标。

还有什么我应该使用的吗?

 <ListBox ItemsSource="{DynamicResource products}" Width="319" x:Name="productsListBox" Height="300">
    <ListBox.ItemTemplate>
      <DataTemplate>
        <TextBox Text="{Binding Title}" BorderThickness="0" IsReadOnly="True"/>
      </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

【问题讨论】:

  • 您希望在 ListBox 中编辑 ListBox 中的文本吗? TextBox 控件通常用于编辑文本值。如果您只想在 ListBox 中显示文本,那么像 TextBlock 这样的另一个控件会更好。看看 Windows 设计指南:msdn.microsoft.com/en-us/library/windows/desktop/… 我认为直接编辑 ListBox 中的项目并不“正常”,尽管这是可能的。没有正确或错误的答案,但请尝试为您选择控件的原因。

标签: c# wpf xaml listbox


【解决方案1】:

模板中的只读文本框可以替换为文本块

<DataTemplate>
    <TextBlock Text="{Binding Title}" BorderThickness="0"/>
</DataTemplate>

【讨论】:

  • 成功了!谢谢。我尝试了 label 并想知道为什么它会起作用。
  • @user3791372,TextBox 应该是可编辑的,不像 Label 和 TextBlock 只显示文本。所以 TextBox 需要显示选择、插入符号的位置并处理鼠标事件,这会阻止列表项被选择
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-20
  • 2016-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多