C# Datagrid项。添加不显示内容-WPF/XAML
我有一个名为dgFiles的数据网格,它有4列,并用字符串填充每列。当我使用C# Datagrid项。添加不显示内容-WPF/XAML,c#,wpf,xaml,datagrid,C#,Wpf,Xaml,Datagrid,我有一个名为dgFiles的数据网格,它有4列,并用字符串填充每列。当我使用 //Add Row MessageBox.Show(fileName + " " + dateModified + " " + fileType + " " + fileLength); dgFiles.Items.Add(new object[] { fileName, dateModified, fileType, fileLength + "
//Add Row
MessageBox.Show(fileName + " " + dateModified + " " + fileType + " " + fileLength);
dgFiles.Items.Add(new object[] { fileName, dateModified, fileType, fileLength + " kb" });
dgFiles.Items.Refresh();
messagebox显示我想要填充datagrid的正确字符串,但是我的datagrid只显示一个空行
我的XAML数据网格的代码
<!--Data Grid-->
<DataGrid x:Name="dgFiles" Grid.Row="4" Margin="5" GridLinesVisibility="None" IsReadOnly="True" RowHeaderWidth="0" MouseDoubleClick="dgFiles_MouseDoubleClick">
<DataGrid.Columns>
<DataGridTextColumn Header="File Name" Width="30*"/>
<DataGridTextColumn Header="Date Modified" Width="40*"/>
<DataGridTextColumn Header="Type" Width="14*"/>
<DataGridTextColumn Header="Size" Width="10*"/>
</DataGrid.Columns>
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="BorderThickness" Value="0"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
</DataGrid>
任何帮助都将不胜感激:)
谢谢,iato您需要将每列的
绑定
属性设置为绑定到您添加到项
/项资源
集合的数据项的公共属性的绑定:
<DataGridTextColumn Header="File Name" Binding="{Binding Filename}" Width="30*"/>
<DataGridTextColumn Header="Date Modified" Binding="{Binding Date}" Width="40*"/>
<DataGridTextColumn Header="Type" Binding="{Binding Type}" Width="14*"/>
<DataGridTextColumn Header="Size" Binding="{Binding Size}" Width="10*"/>
如果希望能够编辑DataGrid
中的数据,则不能将匿名对象添加到其项
属性中。相反,您应该使用属性定义一个类,并将ItemsSource
设置为此类型的IEnumerable
:
List<YourClass> items = new List<YourClass>();
items.Add(new YourClass { FileName = fileName, Date = dateModified, Type = fileType, Size = fileLength + " kb" });
dgFiles.ItemsSource = items;
List items=newlist();
添加(新的YourClass{FileName=FileName,Date=dateModified,Type=fileType,Size=fileLength+“kb”});
dgFiles.ItemsSource=项目;
您需要将每列的绑定
属性设置为绑定到添加到项
/项资源
集合的数据项的公共属性的绑定:
<DataGridTextColumn Header="File Name" Binding="{Binding Filename}" Width="30*"/>
<DataGridTextColumn Header="Date Modified" Binding="{Binding Date}" Width="40*"/>
<DataGridTextColumn Header="Type" Binding="{Binding Type}" Width="14*"/>
<DataGridTextColumn Header="Size" Binding="{Binding Size}" Width="10*"/>
如果希望能够编辑DataGrid
中的数据,则不能将匿名对象添加到其项
属性中。相反,您应该使用属性定义一个类,并将ItemsSource
设置为此类型的IEnumerable
:
List<YourClass> items = new List<YourClass>();
items.Add(new YourClass { FileName = fileName, Date = dateModified, Type = fileType, Size = fileLength + " kb" });
dgFiles.ItemsSource = items;
List items=newlist();
添加(新的YourClass{FileName=FileName,Date=dateModified,Type=fileType,Size=fileLength+“kb”});
dgFiles.ItemsSource=项目;
大多数人不会像那样手动使用Items集合。WPF最奇妙的地方是它的绑定功能。典型的方法是创建一个具有FileName、DateModified、Type和Size属性的类来保存数据,并将该类的实例添加到ObservableCollection。然后在XAML中,您可以声明@ashbygeek谢谢,我将尝试一下大多数人不会像那样手动使用Items集合。WPF最奇妙的地方是它的绑定功能。典型的方法是创建一个具有FileName、DateModified、Type和Size属性的类来保存数据,并将该类的实例添加到ObservableCollection。然后在XAML中,你可以说@ashbygeek谢谢你,我会尝试一下,这对XAML来说还是很新鲜的,所以这对我来说很有意义:)谢谢!我对XAML还是新手,所以这对我来说很有意义:)谢谢!