CSV数据无法在DataGrid的WPF ui上呈现[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我是C#的新手,CSV数据无法在DataGrid的WPF ui上呈现,我从csv获取数据但无法在ui上显示,是否可以帮助我?

以下是我的XAML代码 -

<Window x:Class="SampleApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:SampleApp"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="825">
    <DataGrid AutoGenerateColumns="True" Height="217" HorizontalAlignment="Left" Margin="73,33,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="707">

        <DataGrid.Columns>
            <DataGridTextColumn Header="Serials" Width="40" Binding="{Binding Serials}"></DataGridTextColumn>
            <DataGridTextColumn Header="Number" Width="100" Binding="{Binding Number}"></DataGridTextColumn>
            <DataGridTextColumn Header="InstalledCode" Width="100" Binding="{Binding InstalledCode}"></DataGridTextColumn>
            <DataGridTextColumn Header="InstalledTime" Width="100" Binding="{Binding InstalledTime}"></DataGridTextColumn>
            <DataGridTextColumn Header="Location" Width="100" Binding="{Binding Location}"></DataGridTextColumn>
            <DataGridTextColumn Header="Site" Width="40" Binding="{Binding Site}"></DataGridTextColumn>
            <DataGridTextColumn Header="UUID" Width="40" Binding="{Binding UUID}"></DataGridTextColumn>
            <DataGridTextColumn Header="Uninstalled" Width="100" Binding="{Binding Uninstalled}"></DataGridTextColumn>
            <DataGridTextColumn Header="Notes" Width="100" Binding="{Binding Notes}"></DataGridTextColumn>
        </DataGrid.Columns>

    </DataGrid>

</Window>

Update1:​​下面是c#代码:

private void LoadBound(string fName)
        {
            String textLine = string.Empty;
            String[] splitLine;
            var data = new DataTable();
            var sharath = new DataTable();
            data.Columns.AddRange(new[]
                                   {
                               new DataColumn ("Serials"),
                               new DataColumn ("Number"),
                               new DataColumn ("InstalledCode"),
                               new DataColumn ("InstalledTime"),
                               new DataColumn ("Location"),
                               new DataColumn ("Site"),
                               new DataColumn ("UUID"),
                               new DataColumn ("Uninstalled"),
                               new DataColumn ("Notes")

                            });
            data.Rows.Clear();

            if (System.IO.File.Exists(fName))
            {
                System.IO.StreamReader objReader = new System.IO.StreamReader(fName);

                var contents = objReader.ReadToEnd();

                var strReader = new System.IO.StringReader(contents);

                do
                {
                    textLine = strReader.ReadLine();
                    if (textLine != string.Empty)
                    {
                        splitLine = textLine.Split(',');
                        if (splitLine[0] != string.Empty || splitLine[1] != string.Empty)
                        {
                            data.Rows.Add(splitLine[0]);
                        }
                    }
                } while (strReader.Peek() != -1);

            }
            dataGrid1.DataContext = data;
        }

UPDATE2:

我的Csv文件是

10,20,30,40,50,60,70,80
1,2,3,4,5,6,7,8

任何人都可以帮我填充从csv到WPF Ui的数据吗?

c# wpf csv datagrid wpfdatagrid
1个回答
2
投票

你没有设置DataGrid.ItemsSource。

如果DataContext设置为DataTable,则可以通过xaml中的绑定设置ItemsSource:

ItemsSource="{Binding Path=DefaultView}"

或者从代码中设置ItemsSource:

dataGrid1.ItemsSource = data.DefaultView;
© www.soinside.com 2019 - 2024. All rights reserved.