扩展列表框或使用其他选项
本文关键字:其他 选项 列表 扩展 | 更新日期: 2023-09-27 18:20:58
我正在创建某种聊天风格的应用程序。列表框由其ItemSource填充,该ItemSource是列表的绑定。"Message"是一个包含各种属性的自定义类。ListBox包含一个用于正确显示消息项的DataTemplate。
我在使用ListBox时遇到了一些问题:
1.用户无法选择文本
2.当项目被添加到列表中时,ListBox不会自动向下滚动。
我想使用类似TextBox的东西,但我就是不知道如何使用某种DataTemplate并将Text属性绑定到List。当然,文本应该是可格式化的。
我能做些什么来解决我的问题吗?我曾想过将ListBox控件扩展为自动滚动控件,但这并不能解决我关于文本选择的问题。
我找到了一个解决方案。我复制了ItemTemplate并将其粘贴到一个新的ItemsControl
-Control中。之后,我将一个ScrollViewer
缠绕在ItemsControl
上。我为ListChanged
事件添加了一个事件处理程序。在事件处理程序中,我调用了MatŞj Zábský发布的ItemsControl包装ScrollViewer的ScrollToBottom方法。为了解决文本选择的问题,我使用了一个更改了特定属性的TextBox。有什么方法可以选择WPF文本块吗?
谢谢你,瑞秋和马特。
您当然可以使用DataTemplate并使ListBox中的每个项都成为TextBox。
至于"2。当项目被添加到列表中时,ListBox不会自动向下滚动。",在ListBox的ScrollViewer上调用ScrollToBottom(您可以使用LogicalTreeHelper来查找它)。
您可能需要重新思考,并使用某种ReachTextBox加TextBox进行键入。