WPF listbox nie wsywietla wprowadzonych danych

0

Witam
Otóż mam taki problem stworzyłam klasę konto z trzema zmiennymi nazwa, nr, saldo. Zrobiłam listbox-a aby można było widzieć dodane konta. I teraz tak mam w kodzie xaml.cs dodane trzy obiekty klasy Konto i mimo iż coś tam jest to nie są one wyswietlane. Może wiecie jak to naprawić. Myślałam że to kolor czcionki ale to nie o to chodzi. Nie mam juz pomysłów. Poniżej kody xaml, xaml.cs i klasa

<Window x:Class="saldo.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:saldo"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="525">
    <Grid HorizontalAlignment="Left" Height="403" Margin="-4,10,0,0" VerticalAlignment="Top" Width="515">
        <Grid.RowDefinitions>
            <RowDefinition Height="82*"/>
            <RowDefinition Height="178*"/>
            <RowDefinition Height="143*"/>
        </Grid.RowDefinitions>
        <Label Content="numer konta" HorizontalAlignment="Left" Height="36" Margin="23,19,0,0" VerticalAlignment="Top" Width="83"/>
        <TextBox x:Name="tnr" HorizontalAlignment="Left" Height="43" Margin="122,19,0,0" TextWrapping="Wrap" Text="00" VerticalAlignment="Top" Width="318"/>
        <Button x:Name="ok" Content="OK" HorizontalAlignment="Left" Height="30" Margin="445,32,0,0" VerticalAlignment="Top" Width="51" Click="ok_Click"/>
        <GroupBox Header="KONTO" HorizontalAlignment="Left" Height="158" Margin="23,10,0,0" Grid.Row="1" VerticalAlignment="Top" Width="482">
            <StackPanel HorizontalAlignment="Left" Height="132" Margin="4,0,0,0" VerticalAlignment="Top" Width="462">
                <Grid HorizontalAlignment="Left" Height="128" Margin="10,0,0,0" Width="442">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="43*"/>
                        <RowDefinition Height="51*"/>
                        <RowDefinition Height="34*"/>
                    </Grid.RowDefinitions>
                    <Button x:Name="wplac" Content="Wplata" HorizontalAlignment="Left" Height="24" Margin="10,10,0,0" Grid.Row="2" VerticalAlignment="Top" Width="98"/>
                    <Button x:Name="wyplac" Content="Wyplata" HorizontalAlignment="Left" Height="24" Margin="317,10,0,0" Grid.Row="2" VerticalAlignment="Top" Width="98" RenderTransformOrigin="1.32,0.314"/>
                    <TextBox HorizontalAlignment="Left" Height="31" Margin="10,10,0,0" Grid.Row="1" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="422"/>
                    <Label Content="Label" HorizontalAlignment="Left" Height="33" Margin="10,10,0,0" VerticalAlignment="Top" Width="135"/>
                    <TextBox HorizontalAlignment="Left" Height="23" Margin="189,10,0,0" TextWrapping="Wrap" Text="00" VerticalAlignment="Top" Width="226"/>
                </Grid>
            </StackPanel>
        </GroupBox>
        <GroupBox Header="dostep" HorizontalAlignment="Left" Height="123" Margin="23,10,0,0" Grid.Row="2" VerticalAlignment="Top" Width="482">
            <ListBox x:Name="lista" HorizontalAlignment="Left" Height="91" Margin="4,6,0,0" VerticalAlignment="Top" Width="462" SelectionChanged="lista_SelectionChanged" DisplayMemberPath="NumerSaldo" Background="#FFF9F2F2" Opacity="1" Cursor="Pen" FontSize="16" FontWeight="Bold" FontStyle="Italic" FontStretch="Normal" Visibility="Visible" BorderBrush="#FF0B1229" OpacityMask="#FFB86666"/>
        </GroupBox>
    </Grid>
</Window>

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;
using System.Collections.ObjectModel;

namespace saldo
{
    /// <summary>
    /// Logika interakcji dla klasy MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        private ObservableCollection<Konto> konty = new ObservableCollection<Konto>();
        public MainWindow()
        {
            InitializeComponent();

            konty.Add(new Konto("a",123,15));
            konty.Add(new Konto("b",456,20));
            konty.Add(new Konto("c",789,28));


            lista.ItemsSource = konty;
            lista.Focus();
            lista.SelectedIndex = 0;
        }

        private void ok_Click(object sender, RoutedEventArgs e)
        {
            int k;
            k = int.Parse(tnr.Text);
        }

        private void lista_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {

        }
    }
}

klasa

namespace saldo
{
    class Konto
    {
        private int numer;
        private int saldo=0;
        string nazwa;

        
        public Konto(string nazw, int nr, int saldy)
        {
            nazwa = nazw;
            numerkonta = nr;
            saldo = saldy;
        }
        public int numerkonta { get; set; }
        public int Wpłac(int kwota)
        {
            saldo += kwota;
            return saldo;
        }
        public int Wyplac(int kwotw)
        {
            saldo -= kwotw;
            return saldo;
        }
        public string NumerSaldo()
        {
            string nrk = numerkonta.ToString();
            string sald = saldo.ToString();
            return nazwa+" "+nrk + " " + sald; 
        }

    }
}
2

zmień

 public string NumerSaldo()
        {
            string nrk = numerkonta.ToString();
            string sald = saldo.ToString();
            return nazwa+" "+nrk + " " + sald; 
        }

na

 public string NumerSaldo
 {      
        get {
            string nrk = numerkonta.ToString();
            string sald = saldo.ToString();
            return nazwa+" "+nrk + " " + sald; 
        }
}
0

dzięki :> a młógłbyś jeszcze wytłumaczyć o co dokładnie z tym chodzi, rozumiem to w ten sposób że metoda NumerSaldo (bez paramterów) pobiera to co jest zwracane ? dobrze rozumiem ?

0

To co podajesz w DisplayMemberPath musi być albo właściwością albo polem danego obiektu, więc w kodzie powyżej zrobiłem z metody NumerSaldo() właściwość NumerSaldo :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1