我将值绑定到列表框但字符串没有以正确的格式显示。
从我的字符串开始,如
abc 10
abcd 20
asdfas 30
我使用填充
将固定长度设置为第一个30的字符串str1.PadRight(30) + str2.PadRight(2)
然后我也得到这样的价值
abc 10
abcd 20
asdfas 30
请建议如何在字符串
之间放置相同的空格答案 0 :(得分:2)
Windows用户界面通常使用可变宽度字体,因此您不能只使用空格填充给定列以使文本排成一行。
您需要将ListBox设置为使用等宽字体(例如Courier或Lucida Console),使用支持列的ListView(或类似),或实现所有者绘制的项目,以便您可以控制项目的方式显示,将文本拆分为以列形式绘制。
答案 1 :(得分:0)
Windows窗体ListBox
支持多列。在constructor的文档中有一个例子。
虽然这可能不适用于数据绑定。在这种情况下,您可能需要使用ListView
代替。
答案 2 :(得分:0)
我会创建一个包装文本的ViewModel和一个数字:
class MyViewModel
{
public string Text { get; set; }
public int Number { get; set; }
}
然后给ListBox
ItemTemplate
执行布局:
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<DockPanel>
<TextBlock DockPanel.Dock="Left"
Text="{Binding Text}"/>
<TextBlock DockPanel.Dock="Right"
Text="{Binding Number}"/>
</DockPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>