从listview填充文本框。过载错误

时间:2014-06-24 18:00:53

标签: c# wpf

我有一个我写的程序。它会打开一个名为editItem.xaml的新窗口。我设置了程序的标题和程序的变量。然后我检查是否DialogResult = true,如果是,那么我用其他代码刷新listview。我可以成功地从列表视图中获取数据,用以下内容填充文本框:

ei.txtEditEffectiveDate.Text = ((System.Data.DataRowView)(listView1.SelectedItem)).Row.ItemArray[1].ToString();

但无论如何都没有格式化数据。所以日期是:06/01/2014 12:00:00

我试过简单地放入ToString(" d");改变格式,但当我这样做时,我得到一个错误:

No overload for method 'ToString' takes 1 arguments

这是我的代码:

    private void editEntryInstance()
    {
        // Open editItem.xaml
        editItem ei = new editItem();

        // Assign the program a title
        ei.Title = "Edit Entry for Item: " + ((System.Data.DataRowView)(listView1.SelectedItem)).Row.ItemArray[0].ToString();

        // Get variables of entry
        ei.txtEditItem.Text = ((System.Data.DataRowView)(listView1.SelectedItem)).Row.ItemArray[0].ToString();
        ei.txtEditEffectiveDate.Text = ((System.Data.DataRowView)(listView1.SelectedItem)).Row.ItemArray[1].ToString();
        ei.txtEditTermDate.Text = ((System.Data.DataRowView)(listView1.SelectedItem)).Row.ItemArray[2].ToString();
        ei.txtEditMoq.Text = ((System.Data.DataRowView)(listView1.SelectedItem)).Row.ItemArray[3].ToString();
        ei.txtEditSetupCost.Text = ((System.Data.DataRowView)(listView1.SelectedItem)).Row.ItemArray[4].ToString();

        if (ei.ShowDialog().Value)
        {
            // Refresh after editing entry
            refreshInstance();
        }
    }

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您正尝试在字符串类型值上应用ToString("d")ToString类型对象可以使用此DateTime重载。

您需要将值转换为DateTime类型对象,然后应用ToString("d")

DateTime dt = Convert.ToDateTime(((System.Data.DataRowView)(listView1.SelectedItem)).Row.ItemArray[1]);
ei.txtEditEffectiveDate.Text = dt.ToString("d");

如果值包含自定义格式的日期,则可能需要DateTime.ParseExactDateTime.TryParseExact才能将字符串值解析为DateTime