基本字符串格式化c#

Basic string formatting c#

我正在制作一个简单的 windows 表单应用程序。在我的列表视图中,我想显示三件事;日期、时间和说明。我现在是这样做的:

task = date + time + description;

(任务、日期、时间、描述均为字符串)

给出结果:

但我想要的是让这些字符串显示在不同类别的下方,如下所示:

如何将 3 个字符串(日期、时间、说明)格式化为一个(任务)以便它们显示为图二?

+ 连接项目只会执行正常的字符串连接,这就是为什么您将所有内容都集中在一起的原因。

要执行您要求的操作,您必须在构造函数中指定字符串数组的位置添加一个新的 ListViewItem。每个数组元素代表 ListView 中的一列:{column 1, column 2, column 3, etc...}

例如:

ListView1.Items.Add(new ListViewItem(new string[] {date, time, description}));

ListViewItem(string[]) 构造函数的 MSDN 文档: https://msdn.microsoft.com/en-us/library/faw83h4f(v=vs.110).aspx

您需要从 ListView 属性中设置 View:Details 以获得网格样式的外观。当您创建一个 ListItem 时,它被视为第一列的数据,随后的 SubItem 被视为该特定 ListItem 的额外列。试试这个例子。

ListViewItem lvi;
for (int i = 0; i < 10; i++)
{
   lvi = new ListViewItem();
   lvi.Text = "first column";
   lvi.SubItems.Add("second column");
   lvi.SubItems.Add("third column");
   listView1.Items.Add(lvi); 
}

这里有一些扩展示例供您参考。

虽然您可能会找到一种方法来连接字符串,然后 space 通过在列表视图以外的其他内容中正确显示它们,列表视图将是您的最佳选择。

您的代码类似于:

public partial class MainWindow : Window
{

    //Your data
    private string date = "2016-04-04";
    private string time = "20:20";
    private string description = "poop";

    //Declare a list
    public List<object> myList { get; set; }


    public MainWindow()
    {
        InitializeComponent();
        DataContext = this;

        //Instantiate your list
        myList = new List<object>();

        //Make a new object
        var listObject = new
        {
            newDate = date,
            newTime = time,
            newDescription = description
        };

        //Add that object to your list
        myList.Add(listObject);
    }
}

和你的 XAML 来显示你的结果:

<Window x:Class="WpfApplicationTestApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <ListView x:Name="listView" ItemsSource="{Binding myList}">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="Date" DisplayMemberBinding="{Binding newDate}"/>
                    <GridViewColumn Header="Time" DisplayMemberBinding="{Binding newTime}"/>
                    <GridViewColumn Header="Description" DisplayMemberBinding="{Binding newDescription}"/>
                </GridView>
            </ListView.View>
        </ListView>
    </Grid>
</Window>