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

C# 在WPF项目中创建简单DataGrid并设置其单元格字体的最简单方法是什么,c#,wpf,xaml,datagrid,wpfdatagrid,C#,Wpf,Xaml,Datagrid,Wpfdatagrid,在我的WPF项目(使用C#)中,我有一个包含DataGrid的XAML。 DataGrid有4列标题(第一列为空)。 加载时,我添加一组行,并在每行的第二个单元格中添加一个字符串。 我想我设法添加了它们,但它们似乎不可见,或者根本没有添加! 我试着改变文本的颜色,但找不到一个简单的方法 我是WPF新手,所以有人能告诉我添加新行、设置单元格文本和字体颜色的最简单方法吗 这是我的XAML: <Grid> <Button Content="Button" Horizontal

在我的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>

还有我的xaml.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 = "" });
            }
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
使用System.Windows;
使用System.Windows.Controls;
使用System.Windows.Data;
使用System.Windows.Documents;
使用System.Windows.Input;
使用System.Windows.Media;
使用System.Windows.Media.Imaging;
使用System.Windows.Navigation;
使用System.Windows.Shapes;
命名空间WpfApplication1
{
/// 
///MainWindow.xaml的交互逻辑
/// 
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
}
公共结构MyDomain
{
公共字符串id{set;get;}
公共字符串url{set;get;}
公共字符串AhrefsHttp{set;get;}
公共字符串AhrefsWww{set;get;}
公共字符串存档{set;get;}
}
私有无效按钮\u单击(对象发送者,路由目标e)
{
列表lst;
lst=新列表();
lst.Add(“google.com”);
lst.Add(“yahoo.com”);
lst.Add(“facebook.com”);
foreach(lst中的字符串链接)
{
DGV.Items.Add(新的MyDomain{id=”“,url=link,AhrefsHttp=“”,AhrefsWww=“”,Archive=“”);
}
}
}
}

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

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

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

var items = new List<MyDomain>();
foreach (string link in lst)
            {
                items.Add(new MyDomain { id = " ", url = link, AhrefsHttp = "", AhrefsWww = "", Archive = "" });
            }
DGV.ItemsSource = items;
var items=newlist();
foreach(lst中的字符串链接)
{
添加(新MyDomain{id=”“,url=link,AhrefsHttp=“”,AhrefsWww=“”,Archive=“”);
}
DGV.ItemsSource=项目;
并绑定要在每列中显示的数据

 <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) 若要自定义单元格的外观,您可能需要使用
单元格模板
,选中此复选框

我添加了完整的代码。是否要为所有单元格设置相同的字体和颜色,或者是选择性的?是,为所有单元格设置相同的字体