在我的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 = "" });
}
}
}
}
答案 0 :(得分:1)
DataGrid中没有显示任何内容的原因是因为您没有将网格的列绑定到ItemsSource的任何属性。要更改单元格文本颜色,请使用Foreground属性。
<DataGridTextColumn Header="URL"
Width="295"
Binding="{Binding url}"
Foreground="Red" />
答案 1 :(得分:1)
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;
并绑定数据以显示在每列中。
<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
,请检查此Link