【发布时间】:2015-03-02 15:55:22
【问题描述】:
我通过 SQLite 适配器从 SQLite 检索到一些数据,并将其填充到 DataTable 中,如下所示:
using (conexionSQLite = new SQLiteConnection(Datos.stringConexionSQLite))
{
conexionSQLite.Open();
string textoSQLite;
SQLiteDataAdapter adaptadorSQLite;
try
{
textoSQLite = "SELECT Fecha, ROUND(ValorTotal,0) as ValorTotal, ROUND(ValorProductoTerminado,0) as ValorProductoTerminado, ROUND(ValorSemielaborados,0) as ValorSemielaborados, ROUND(ValorMateriasPrimas,0) as ValorMateriasPrimas, ROUND(ValorEnvases,0) as ValorEnvases FROM valorStockPorFecha";
adaptadorSQLite = new SQLiteDataAdapter(textoSQLite, conexionSQLite);
adaptadorSQLite.Fill(bd, "tablaValorStock");
}
catch (SQLiteException excepcionSQL)
{
Console.WriteLine("Error: " + excepcionSQL.ToString());
}
}
DataTable tablaValorStock = bd.Tables["tablaValorStock"];
然后我将它绑定到 DataGrid:
dataGrid.ItemsSource = tablaValorStock.DefaultView;
自动生成所有列。
我想要的是格式化一些列,而不必先手动定义它们。
我在考虑自动生成列的某种事件处理,类似于 Windows 窗体的 DataGrid 等效代码:
private void RadGridView1_AutoGeneratingColumn(object sender, GridViewAutoGeneratingColumnEventArgs e)
{
GridViewDataColumn column = e.Column as GridViewDataColumn;
if (column.DataType == typeof(int))
{
column.DataFormatString = "{0:p}";
}
}
我会根据DataGridColumn.Header 评估一种或另一种格式
【问题讨论】:
-
只是出于兴趣,您为什么要在后面的代码中编写此代码,而不是使用 Xaml 设计器?这是一个非常小的应用程序,不值得实现 MVVM 模式吗?
-
@Hardgraf 好吧这只是为了显示一些数据以供阅读,不认为创建这种结构的模型和视图模型是值得的。
-
我想这取决于应用程序将变得多么复杂。但是如果您正在计划 CRUD 功能等,那么可能值得实施 MVVM。
-
@Hardgraf 我的意思是我在我的大部分应用程序中都使用 MVVM,这只是一个片段,它始终是只读的,所以没有 CRUD。
-
对。就我个人而言,我只会在 XAML 中定义数据网格。打开 AutoGenerateColums = false 并根据您的要求充实一个数据网格。大概你知道什么数据进来,所以你可以自己定义列?