2

我将值绑定到列表框,但字符串没有以正确的格式显示。

前我的弦喜欢

abc               10
abcd              20
asdfas            30

我使用填充将第一个字符串设为 30 的固定长度

str1.PadRight(30) + str2.PadRight(2)

然后我也得到了这样的价值观

abc     10
abcd        20
asdfas            30

请建议我如何在字符串之间放置相同的空格

4

3 回答 3

2

Windows 用户界面通常使用可变宽度字体,因此您不能只在给定的列中填充空格以使文本对齐。

您将需要将 ListBox 设置为使用等宽字体(例如 Courier 或 Lucida Console),使用支持列的 ListView(或类似的),或实现所有者绘制的项目,以便您可以控制项目的显示方式,拆分文本以在列中绘制它。

于 2012-06-27T13:50:55.153 回答
0

Windows 窗体ListBox支持多列。在构造函数的文档中有一个示例。

尽管这可能不适用于数据绑定。在这种情况下,您可能需要使用 aListView代替。

于 2012-06-27T13:59:38.863 回答
0

我会创建一个包装文本和数字的 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>
于 2012-06-27T14:05:01.187 回答