c# - 在 WPF DataGrid 中格式化数据
问题描述
我正在尝试在 wpfDataGrid
控件中格式化我的单元格,但我遇到了问题。
我正在上这样的课:
class WashItem
{
private DateTime _Time = DateTime.Now;
private string _Staff = "Undefined";
private double _Price = 850;
public string Staff { get => _Staff; set => _Staff = value; }
public DateTime Time { get => _Time; set => _Time = value; }
public double Price { get => _Price; set => _Price = value; }
}
我正在像这样填充我的数据网格
private void ReloadData()
{
string[] lines = File.ReadAllLines("baza.txt");
double ukupnaVrednost = 0;
DataTable table = new DataTable();
DataColumn col1 = new DataColumn("Osoblje");
DataColumn col2 = new DataColumn("Vreme");
DataColumn col3 = new DataColumn("Cena");
table.Columns.Add(col1);
table.Columns.Add(col3);
table.Columns.Add(col2);
for (int i = 0; i < lines.Length; i++)
{
WashItem item = JsonConvert.DeserializeObject<WashItem>(lines[i]);
DataRow row = table.NewRow();
row["Osoblje"] = item.Staff;
row["Vreme"] = item.Time;
row["Cena"] = item.Price;
table.Rows.Add(row);
ukupnaVrednost += item.Price;
}
dataGridView.ItemsSource = table.AsDataView();
UkupnoOprano.Content = "Ukupno oprano vozila: " + lines.Length;
UkupnoOpranoVrednost.Content = "Vrednost: " + ukupnaVrednost.ToString("#,##0.00");
}
然后我像这样创建了数据网格
<DataGrid Name="dataGridView" AutoGenerateColumns="true" AutoGeneratingColumn="dataGridView_AutoGeneratingColumn"></DataGrid>
最后这是我的dataGridView_AutoGeneratingColumn
功能
private void dataGridView_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
if(e.PropertyName == "Cena")
{
((DataGridTextColumn)e.Column).Binding.StringFormat = "#,##0.00 rsd";
}
else if(e.PropertyName == "Vreme")
{
((DataGridTextColumn)e.Column).Binding.StringFormat = "dd/MM/yyyy";
}
}
自动生成列函数 get 被触发,它确实进入if
了块,但最后我的数据仍然是相同的 - 没有格式化。
解决方案
我会说您需要为 DataColumns 设置 DataType,因为所需的格式特定于这些类型,并且不适用于object
类型。
DataTable table = new DataTable
{
Columns =
{
new DataColumn("Osoblje"),
new DataColumn("Vreme", typeof(DateTime)),
new DataColumn("Cena", typeof(double))
}
};
推荐阅读
- javascript - 填充 selectize.js 字段而不触发 item_add 事件
- postgresql - 如何在 ecto 查询中加入多个模型 Ecto
- android - expo + react-native:发送日志消息时出现问题
- ios - Lauchscreen.storyboard 风景闪屏
- linux - 用没有sed的shell替换二进制文件中的十六进制
- mysql - mysql/mariadb 单数据库复制,仅针对该单数据库进行读写拆分
- amazon-web-services - 如何从存储在 Amazon Redshift 列中的 JSON 数组中获取字符串?
- magento-2.0 - 产品从管理员保存它在表 url_rewrite 中添加双 html URL
- python - 如何在python中使用DNN估计带有“参数”的正弦函数?
- slack - 编程 slack 为网站创建频道