• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed C#,program WPF klasy

Object Storage Arubacloud
0 głosów
302 wizyt
pytanie zadane 21 września 2018 w C# przez seba Dyskutant (8,900 p.)
zamknięte 21 września 2018 przez seba

Witam, program poprzez metodę w klasie "Ludzie" ma dodawać imię, nazwisko,wiek,płeć i narodowość. Po czym na koniec musi zwracać to w postaci listy. Lista ma być przesłana do ListView w MainWindow.xaml. Niestety wyrzuca mi błąd który na ten moment nie za bardzo rozumiem.

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 WpfApp3
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            Ludzie p1 = new Ludzie();
            p1.AddPerson("Sebastian","Piotrkowski",22,"Pole","Male");

            List<Ludzie> ListOfPeople = new List<Ludzie>();
            ListOfPeople.Add(p1);

            ViewList.ItemsSource = ListOfPeople;

            
        }
    }
}
<Window x:Class="WpfApp3.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:WpfApp3"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <ListView x:Name="ViewList" HorizontalAlignment="Center" Height="100" Margin="0" VerticalAlignment="Center" Width="500" Grid.Column="5" FontSize="24">
            <ListView.View>
                <GridView>
                    <GridViewColumn DisplayMemberBinding = "{Binding name}"/>
                    <GridViewColumn DisplayMemberBinding = "{Binding surname}"/>
                    <GridViewColumn DisplayMemberBinding = "{Binding age}"/>
                    <GridViewColumn DisplayMemberBinding = "{Binding sex}"/>
                    <GridViewColumn DisplayMemberBinding = "{Binding nationality}"/>
                </GridView>
            </ListView.View>
        </ListView>

    </Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WpfApp3
{
    class Ludzie
    {
        private string name { set; get; }
        private string surname { set; get; }
        private int age { set; get; }
        private string nationality { set; get; }
        private string sex { set; get; }
        private List<string> person = new List<string>();

        /// <summary>
        /// Method that add's persons
        /// </summary>
        /// <param name="a">Name of person</param>
        /// <param name="b">Surname of person</param>
        /// <param name="c">Age of person</param>
        /// <param name="d">Nationality of person</param>
        /// <param name="e">Sex of person</param>
        public List<string> AddPerson(string a, string b, int c, string d, string e)
        {
            person.Add(a);
            person.Add(b);
            person.Add(Convert.ToString(c));
            person.Add(d);
            person.Add(e);
            return person;
        }
    }
}

 

komentarz zamknięcia: Znam odpowiedź
1
komentarz 21 września 2018 przez NowyUrzydgownig Mądrala (5,090 p.)
Problem polega na tym, że ListView, jeszcze nie został utworzony i jest nullem. Przypisanie ItemsSource powinieneś zrobić w funkcji, a następnie przypisać tą funkcję do eventu Loaded.
komentarz 21 września 2018 przez seba Dyskutant (8,900 p.)
Okej dziękuje. Wszystko jasne, tylko muszę powtórzyć sobie wiadomości z eventLoaded :)
komentarz 21 września 2018 przez seba Dyskutant (8,900 p.)
edycja 21 września 2018 przez seba

@NowyUrzydgownig, chociaż w sumie oglądam film na którym gościu ma prawie to samo co ja i jemu działa, pytanie dlaczego?

https://www.youtube.com/watch?v=YZHoQ6fjQ_A&index=15&list=PLk5dbESAmUZh1cLITav0ZmDEqRujsPa93

 

Never mind, wystarczyło dodać InitializeComponent();, mój błąd

1
komentarz 21 września 2018 przez NowyUrzydgownig Mądrala (5,090 p.)
Wywołuje on na początku InitializeComponents, a w niej tworzy wszystkie obiekty dla GUI.

Podobne pytania

0 głosów
2 odpowiedzi 424 wizyt
pytanie zadane 26 września 2018 w C# przez Sc4red Użytkownik (590 p.)
0 głosów
1 odpowiedź 950 wizyt
pytanie zadane 24 lipca 2018 w C# przez kubekszklany Gaduła (3,190 p.)
0 głosów
2 odpowiedzi 1,312 wizyt
pytanie zadane 19 lutego 2017 w Rozwój zawodowy, nauka, praca przez dasad33 Użytkownik (710 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...