在WPF项目中创建简单的DataGrid并设置其单元格字体的最简单方法是什么?

本文关键字:单元格 字体 最简单 是什么 方法 设置 项目 WPF 创建 DataGrid 简单 | 更新日期: 2023-09-27 18:16:26

在我的WPF项目中(使用c#),我有一个包含DataGrid的XAML。DataGrid有4列标题(第一个为空)。加载时,我添加一组行,并在每行的第二个单元格中添加一个字符串。我想,我设法添加了它们,但它们似乎不可见,或者根本没有添加!我试过改变文字的颜色,但找不到简单的方法。

我是新的WPF,所以请有人告诉我什么是最简单的方法来添加新行和设置他们的单元格的文本和字体颜色?

这是我的XAML:

<Grid>
    <Button Content="Button" HorizontalAlignment="Left" Margin="10,36,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
    <DataGrid x:Name="DGV" HorizontalAlignment="Left" Margin="10,60,-88,0" VerticalAlignment="Top" Width="554" Height="103" Panel.ZIndex="1" RowBackground="#FFC6C6C6" FontWeight="Bold" CanUserSortColumns="False" CanUserResizeColumns="False" CanUserReorderColumns="False" MinColumnWidth="10" IsReadOnly="True">
        <DataGrid.Columns>
            <DataGridTextColumn Header=" "/>
            <DataGridTextColumn Header="URL" Width="295"/>
            <DataGridTextColumn Header="Ahrefs(http)" Width="79"/>
            <DataGridTextColumn Header="Ahrefs(www.)" Width="79"/>
            <DataGridTextColumn Header="Archive" Width="79"/>
        </DataGrid.Columns>
    </DataGrid>
</Grid>

And my example .cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        public struct MyDomain
        {
            public string id { set; get; }
            public string url { set; get; }
            public string AhrefsHttp { set; get; }
            public string AhrefsWww { set; get; }
            public string Archive { set; get; }
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            List<string> lst;
            lst = new List<string>();
            lst.Add("google.com");
            lst.Add("yahoo.com");
            lst.Add("facebook.com");
            foreach (string link in lst)
            {
                DGV.Items.Add(new MyDomain { id = " ", url = link, AhrefsHttp = "", AhrefsWww = "", Archive = "" });
            }
        }
    }
}

在WPF项目中创建简单的DataGrid并设置其单元格字体的最简单方法是什么?

1)要使数据可见,请尝试设置ItemsSource on按钮,单击…

var items = new List<MyDomain>();
foreach (string link in lst)
            {
                items.Add(new MyDomain { id = " ", url = link, AhrefsHttp = "", AhrefsWww = "", Archive = "" });
            }
DGV.ItemsSource = items;

并绑定在每列中显示的数据。

 <DataGridTextColumn Header="URL" Width="295" Binding="{Binding url}" />
 <DataGridTextColumn Header="Ahrefs(http)" Width="79" Binding="{Binding AhrefsHttp}" />
 <DataGridTextColumn Header="Ahrefs(www.)" Width="79" Binding="{Binding AhrefsWww}" />
 <DataGridTextColumn Header="Archive" Width="79" Binding="{Binding Archive}" />
2)要自定义单元格的外观,您可能希望使用CellTemplate,请选中此链接

DataGrid中没有显示任何内容的原因是因为您没有将网格的列绑定到ItemsSource的任何属性。要更改单元格文本的颜色,可以使用前景属性。

<DataGridTextColumn Header="URL"
                    Width="295"
                    Binding="{Binding url}"
                    Foreground="Red" />