0

在 Windows Phone 8 项目中,我有以下包含一些数据的列表框:

一只忙碌的猫

我想列出所有与我画的红线对齐的日期。基本上我希望它在开始后打印日期 N 个空格,而不是在温度之后。

现在我有这个,但我不明白它的格式是如何{}工作的。

for (int i = 0; i < values.Length; i++)
{
      listboxData.Items.Add(String.Format("{0,-12}{1,8}",values[i].value + unit, values[i].date));
}

你能解释一下它是如何工作的以及我的问题的可能解决方案吗?

4

2 回答 2

1

如果您使用的是 ListBox,那么我建议您更改 ItemTemplate 以匹配您想要的格式。看起来您已经拥有一个包含临时读数和读数时间的对象集合(您的值集合)。因此,将 ItemsSource 属性设置为该集合。您可以在代码中执行此操作

listBox.ItemsSource = values;

或者您可以在 xaml 中执行此操作

<ListBox ItemsSource="{Binding values}" />

以上假设您有一个 DataContext ,它的 values 属性包含您的临时读数。

下一步是更改 ItemTemplate 以适合您的格式

<ListBox ItemsSource="{Binding values}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="55"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <TextBlock Text="{Binding value, StringFormat={}{0}°}"/>
                <TextBlock Text="{Binding date, StringFormat={}{0:MM/dd/yyyy hh:mm}}"
                           Grid.Column="1" />
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
于 2013-07-06T18:19:57.807 回答
0

我想也许你的格式字符串是正确的,但问题是真正的字体。并非所有字符的宽度都相同。Courier new 可以工作(所有字符都具有相同的像素宽度,包括空格),但这也可能不是您想要的。可能必须使用两列事务..甚至可能是一张桌子?

例如。我将打印 10 个 i 字符,然后打印 A

iiiiiiiii

啊啊啊啊啊

看到宽度的不同了吗?堆栈溢出正在使用真正的字体来显示我的帖子..

于 2013-07-06T15:44:24.270 回答