我将值绑定到列表框,但字符串没有以正确的格式显示。
前我的弦喜欢
abc 10
abcd 20
asdfas 30
我使用填充将第一个字符串设为 30 的固定长度
str1.PadRight(30) + str2.PadRight(2)
然后我也得到了这样的价值观
abc 10
abcd 20
asdfas 30
请建议我如何在字符串之间放置相同的空格
Windows 用户界面通常使用可变宽度字体,因此您不能只在给定的列中填充空格以使文本对齐。
您将需要将 ListBox 设置为使用等宽字体(例如 Courier 或 Lucida Console),使用支持列的 ListView(或类似的),或实现所有者绘制的项目,以便您可以控制项目的显示方式,拆分文本以在列中绘制它。
我会创建一个包装文本和数字的 ViewModel:
class MyViewModel
{
public string Text { get; set; }
public int Number { get; set; }
}
然后给出进行布局的ListBoxan 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>