Как я могу отобразить DataTable в окне wpf c #? - PullRequest
0 голосов
/ 15 сентября 2018

Я не могу найти четкое решение для этого здесь или Google.

У меня в основном есть DataTable, в который я добавил строки с данными в соответствии с моими потребностями, и я хочу отобразить его в виде таблицыв окне wpf.

Есть идеи, как?Заранее спасибо.

Я попробовал это, но я получил это исключение: " System.NullReferenceException: 'Ссылка на объект не установлена ​​на экземпляр объекта.'ListViewData был нулевым."

это метод, а внутри - создание DataTable:

private void ShowAllPlayersbutton_Click(object sender, RoutedEventArgs e)
    {
        AllPlayersTable = new DataTable("test");
        AllPlayersTable.Columns.Add("Played games",typeof(int));
        AllPlayersTable.Columns.Add("Wins", typeof(int));
        AllPlayersTable.Columns.Add("Losses", typeof(int));
        AllPlayersTable.Columns.Add("Ties", typeof(int));
        AllPlayersTable.Columns.Add("Wins precentage",typeof(int));

        MsServiceClient proxy = new MsServiceClient(new InstanceContext(Callback));
        UserD[] usersArr = proxy.GetAllUsers();

        foreach(UserD uD in usersArr)
        {
            AllPlayersTable.Rows.Add(uD.PlayedGames, uD.Wins, uD.Losts, uD.Ties, uD.VictoryPercent);
        }

        DisplayUsersWindow displayWindow = new DisplayUsersWindow(AllPlayersTable);
        displayWindow.Show();

    }

это окно:

    public partial class DisplayUsersWindow : Window
{
    public DisplayUsersWindow()
    {
        InitializeComponent();
    }

    public DataTable Datas { get; set; }
    public DisplayUsersWindow(DataTable dataTable)
    {
        Datas = dataTable;
        ListViewData.ItemsSource = Datas.DefaultView;//<<<< exception happens here

    }

}

}

1 Ответ

0 голосов
/ 15 сентября 2018

Исключение NullReferenceException возникает из-за того, что вы не инициализировали свое окно в конструкторе, который принимает DataTable, то есть ListViewData не установлено для объекта.Чтобы это исправить, просто добавьте вызов на InitializeComponent():

public DisplayUsersWindow(DataTable dataTable)
{
    InitializeComponent();
    Datas = dataTable;
    ListViewData.ItemsSource = Datas.DefaultView;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...