Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
cest123
Člen
Avatar
cest123:13.10.2014 16:59

Ahoj komunito

Již několik dnů se snažím přijít na chybu v mém bindingu s implementovaným INotify(taky nefunkčním). Snažím se udělat hru AZ-Kvíz, a chci do hlavního okna vypisovat jméno týmu, který je momentálně na tahu, již mi funguje tahování v pozadí, ovšem jsem i přes to že mám všechny třídy nastavení na public, instanci třídy, která obsahuje vlastnost mám v Data contextu nastavenou při konstruktoru okna, samozřejmě mám nastavený binding i v XAML.

Pokud má někdo čas a náladu na pomoc, přikládám odkaz na stažení/prohlídnutí programu:
https://onedrive.live.com/?…

Budu samozřejmě rád i za nějakou tu kritiku na fungování programu samotného, ikdyž je ještě ve poměrně nedodělaé verzi

 
Odpovědět
13.10.2014 16:59
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na cest123
Petr Nymsa:13.10.2014 17:11

Nechce se mi nic stahovat, pošli kód kusu XAML a tu třídu přímo sem

Nahoru Odpovědět
13.10.2014 17:11
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
cest123
Člen
Avatar
Avatar
cest123
Člen
Avatar
cest123:13.10.2014 17:24
   public class Spravce: INotifyPropertyChanged
    {
        public Tym dalsiTymNatahu;
        public event PropertyChangedEventHandler PropertyChanged;
        public void OnPropertyChanged(string name)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(name));
        }

        public Spravce()
        {
            tymy[0] = new Tym(Brushes.Blue, "Modří", true);
            tymy[1] = new Tym(Brushes.Red, "Červení", false);
            tymy[2] = new Tym(Brushes.Black, "Černí-Špatní", false);
            dalsiTymNatahu = tymy[0];
            OnPropertyChanged("dalsiTymNatahu");
        }
}

    public class Tym
    {
        string jmeno;
        public bool naTahu;
        public SolidColorBrush barvaTýmu;

        public Tym(SolidColorBrush brush, string jmeno, bool zacatek)
        {
            naTahu = zacatek;
            barvaTýmu = brush;
            this.jmeno = jmeno;
        }
        public override string ToString()
        {
            return jmeno.ToString();
        }
    }

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            DataContext = this.spravce;
        }
        public Spravce spravce = new Spravce();
    }
<TextBlock MinWidth="50" Padding="2" FontWeight="Bold" Text="{Binding dalsiTymNatahu}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
Editováno 13.10.2014 17:25
 
Nahoru Odpovědět
13.10.2014 17:24
Avatar
Odpovídá na cest123
sadlomaslox25:13.10.2014 20:34
  1. Bindovani nejde protoze binding je jen pro Properties.
  2. OnpropertyChange byva vetsinou soucasti seteru te property.
  3. Pokud pouzivas novejsi .NET frameworku prejdi na CallerMemberName http://www.refactorthis.net/…tribute.aspx
  4. Nepouzivej diakritiku v nazvech trid a promenych
  5. Tohle urcite neni dobry napad:

    Otazky[0, 0] = tbo_A.Text;

    Otazky[0, 1] = tbr_A.Text;

    Otazky[1, 0] = tbo_B.Text;

    Otazky[1, 1] = tbr_B.Text;

    Otazky[2, 0] = tbo_C.Text;

    Otazky[2, 1] = tbr_C.Text;

  6. Na toceni teamu bych vyuzil tridu stack nebo queue.
  7. Goto neni moc dobry napad pouzivat.
 
Nahoru Odpovědět
13.10.2014 20:34
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.