繁体   English   中英

基本字符串格式C#

[英]Basic string formatting c#

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

task = date + time + description;

(任务,日期,时间,描述都是字符串)。

结果如下:

在此处输入图片说明

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

在此处输入图片说明

如何将3个字符串(日期,时间,描述)格式化为一个(任务),以使其如图2所示?

+串联项目只会执行普通的字符串串联,这就是为什么将所有内容都放在一个块中的原因。

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

例如:

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

ListViewItem(string[])构造函数的MSDN文档: https : ListViewItem(string[]) v=vs.110 ListViewItem(string[]) .aspx

您需要从ListView属性设置View:Details ,以给出网格样式的外观。 创建ListItem时,将其视为第一列的数据,并将后续SubItems视为该特定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); 
}

这是为您扩展的示例。

虽然您可能找到一种方法来连接字符串,然后通过在列表视图以外的其他位置显示它们来适当地隔开它们,但列表视图将是您的最佳选择。

您的代码将类似于以下内容:

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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM