WPF C# .NET 4.7.2/索引数据网格列和更改格式
WPF C# .NET 4.7.2 / Index datagridcolumn and change format
所以我用 sql 服务器数据填充了一个 WPF 数据网格,代码如下:
string strSqlHomeView = "select * from MyTable"
string connetionString = @"Data Source=MyDataSource;Initial Catalog=MyDb;Integrated Security=SSPI";
SqlConnection cnn = new SqlConnection(connetionString);
SqlDataAdapter sqlDA1 = new SqlDataAdapter(strSQL, cnn);
System.Data.DataTable Dt = new System.Data.DataTable();
sqlDA1.Fill(Dt);
MyDatagrid.ItemsSource = Dt.DefaultView;
cnn.Close();
但是因为是SQL的数据,看来我不能直接从XAML改变格式,所以我想我需要从后面的代码中索引该列。我只想在逗号后进行第 2 轮。
在 Winform 中,使用 datagridview 我会这样做:
dataGridView1.Columns["MyColumn"].DefaultCellStyle.Format = "0.##";
对于那些曾经玩过 Python Dataframe 或 C# winform datagridview 的人,您知道如何设置列与列之间的内容,例如 iloc 函数或索引。
由于 Microsoft 文档对此不是很明确,因此在 Internet 上找到相关内容并不是那么简单,因为每个示例都有其自身的特殊性。
无论如何,在此先感谢您的帮助
如果您的列是自动生成的,那么您可以处理 AutoGeneratingColumn
并以这种方式设置格式:
MyDatagrid.AutoGeneratingColumn += MyDatagrid_AutoGeneratingColumn
...
private void MyDatagrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
if(e.PropertyName == "MyColumn")
{
DataGridTextColumn col = e.Column as DataGridTextColumn;
col.Binding = new Binding(e.PropertyName) { StringFormat = "0.##" };
}
}
所以我用 sql 服务器数据填充了一个 WPF 数据网格,代码如下:
string strSqlHomeView = "select * from MyTable"
string connetionString = @"Data Source=MyDataSource;Initial Catalog=MyDb;Integrated Security=SSPI";
SqlConnection cnn = new SqlConnection(connetionString);
SqlDataAdapter sqlDA1 = new SqlDataAdapter(strSQL, cnn);
System.Data.DataTable Dt = new System.Data.DataTable();
sqlDA1.Fill(Dt);
MyDatagrid.ItemsSource = Dt.DefaultView;
cnn.Close();
但是因为是SQL的数据,看来我不能直接从XAML改变格式,所以我想我需要从后面的代码中索引该列。我只想在逗号后进行第 2 轮。 在 Winform 中,使用 datagridview 我会这样做:
dataGridView1.Columns["MyColumn"].DefaultCellStyle.Format = "0.##";
对于那些曾经玩过 Python Dataframe 或 C# winform datagridview 的人,您知道如何设置列与列之间的内容,例如 iloc 函数或索引。 由于 Microsoft 文档对此不是很明确,因此在 Internet 上找到相关内容并不是那么简单,因为每个示例都有其自身的特殊性。
无论如何,在此先感谢您的帮助
如果您的列是自动生成的,那么您可以处理 AutoGeneratingColumn
并以这种方式设置格式:
MyDatagrid.AutoGeneratingColumn += MyDatagrid_AutoGeneratingColumn
...
private void MyDatagrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
if(e.PropertyName == "MyColumn")
{
DataGridTextColumn col = e.Column as DataGridTextColumn;
col.Binding = new Binding(e.PropertyName) { StringFormat = "0.##" };
}
}