• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    CERMINEK
    CERMINEK --- ---
    TENCOKACISTROMY: Tak to budu dělat sám za sebe : D jen kdybych fakt nevěděl..Hlavně při mém oboru je .NET naprostá hovadina... Prostě předmět, aby se vešli do 180 kreditů za Bc.
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    TENCOKACISTROMY: si pamatuju jak na skole na koleji mel kamos fabriku na seminarky z programovani, protoze tomu tam nikdo nerozumel (byla to strojarna, a tehdy se tam jel pascal), tolik flasek ruznyho chlastu sem snad po hromade pak uz nevidel
    :)))
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    CERMINEK: Poradit neni problem. Od toho to tu je.
    Ale zkousku delej sam za sebe. K cemu by to pak bylo? Nepodporuju devalvaci akademickejch titulu, i kdyz mi jejich koncept nevyhovuje.
    CERMINEK
    CERMINEK --- ---
    TENCOKACISTROMY: Super! Fachčí to...

    Jinak ale doufám, že zítra u zkoušky bude nějaké ze zadáních, které byly v minulosti. Mohl bych Vás ale někoho požádat, zda-li byste nebyli zítra mezi 9:00 a 12:00 on-line pro případný help? S .NET se fakt nekámoším a zkoušku bych rád měl z krku :D
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    TENCOKACISTROMY: oprava - misto:
    public class MyClass {
        public List<int> Numbers {get; private set; }
    

    ma byt
    public class MyClass {
        public BindingList<int> Numbers {get; private set; }
    
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    CERMINEK: Pouzij "BindingList<T>" misto "List<T>". Nachazi se v namespacu "System.ComponentModel".

    public class MyClass {
        public List<int> Numbers {get; private set; }
        
        public MyClass() {
            var rnd = new Random();
            var capacity = 10;
            this.Numbers = new List<int>(capacity);
            for(int i = 0; i < capacity; i++) {
                this.Numbers[i] = rnd.Next(0,100);
            }
        }
    }
    
    // .... ve formu
    private MyClass asdf = new MyClass();
    public Form1() {
        asdf.Numbers.ListChanged += Numbers_ListChanged;
        this.RefreshLabel();
    }
    void Numbers_ListChanged(object sender, ListChangedEventArgs e) {
        this.RefreshLabel();
    }
    void RefreshLabel() {
        this.label1.Text = string.Concat(this.asdf.Numbers.ToArray());
    }
    void button1_Click(object sender, EventArgs e) {
        this.asdf.Numbers.Add(int.Parse(this.textBox1.Text));
    }
    


    Pisu to z hlavy, mozna tam je nekde preklep.
    CERMINEK
    CERMINEK --- ---
    TENCOKACISTROMY: Díky, už to valí...

    Jen mám další dotaz. V tom formu mám label, kam si vypisuju metodou všecha čísla z toho listu. Je nějaké řešení, jak nadefinovat tomu labelu, aby se při každé změně toho listu aktualizoval text v tom labelu?

    Zatím to mám jen pří form_Load a to není moc praktické ani elegantní..

    private void Form1_Load(object sender, EventArgs e)
    {
    histogram h = new histogram();
    h.vypiscisla();
    lblVypis.Text = h.vypiscisel;
    }
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    THEBYS: To musi vyhodit chybu (NullReferenceException). Field "mujSeznam" bude dobe behu konstruktoru vzdycky null.
    CERMINEK: Zkus to takhle:
    public class MyClass {
        public List<int> Numbers {get; private set; }
        
        public MyClass() {
            var rnd = new Random();
            var capacity = 10;
            this.Numbers = new List<int>(capacity);
            for(int i = 0; i < capacity; i++) {
                this.Numbers[i] = rnd.Next(0,100);
            }
        }
    }
    
    // .... ve formu
    private MyClass asdf = new MyClass();
    void button1_Click(object sender, EventArgs e) {
        this.asdf.Numbers.Add(int.Parse(this.textBox1.Text));
    }
    
    THEBYS
    THEBYS --- ---
    Třída bude vypadat nějak takhle: http://pastebin.com/xJ0dQtiS
    a zavoláš to tam kde to máš instancovaný jako NazevMojiInstance.PridejDoSeznamu(69);
    Kdyby něco nešlo klidně napiš.
    CERMINEK
    CERMINEK --- ---
    Ahoj mám dotaz... značně elementární a značně lamácký, ale nevím si s tím rady...

    Mám vytvořenou třídu, ve které mám public vytvořený list. Při Form_Load vytvořím novou instanci třídy, kdy v defaultním konstruktoru naplním list v té třídě náhodnými čísly. Do listu chci ale přidávat i další čísla z textboxu. Mám ošetřené načítání a přetypování čísel z textboxu po stisku tlačítka, ale zaboha nemůžu přijít na to, jak to číslo přidat do toho listu, resp. jak vyvolat metodu té třídy, kteá to přidání provede...

    Zkouším googlit, ale asi volím špatná hesla pro hledání.

    Pomůže někdo prosím?
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    JACHYMKO: To by asi slo. Jeste budu muset zaridit, abych rozlisil zmenu toho obsahu na zaklade ty puvdoni akce. Cili jestli to udelal uzivatel a nebo ja. To bude chutovka :P.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    Priklad, jak ta kompozice UI muze vypadat:
    + Window
    |-+ nejakej ovladaci bar
    |-+ content kontajner (zde bud budu prepinat jiny control, nebo na nem budu volat back/forward)
      |-+ content (bud browser, nebo custom usercontrol. pro tento pripad usercontrol)
        |-+ content (napr. nejaky tab-control, ktery ma reagovat na zpet/vpred prepinanim tabu jak je uzivatel klikal)
        |-+ content (napr. nejaky jiny tab-control)
    


    Jak urcim pri "back", kterymu z tech tab-controlu mam zavolat "back/forward"? To budu muset mit nejakou nadrizenou navigation service, ktera na zaklade udalosti zmen tech tabu bude muset sestavovat nejaky ty Uri, a za nich to pak budu muset dekodovat predpokladam.

    Takhle jsi to myslel?
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    JACHYMKO: No jasne, ale kdyz budu mit ty views uvnitr views uvnitr views (atd...) a ty budou mit teda tu svoji navigation service. Jak najdu tu spravnou navigation service, kde mam volat back/forward?
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    JACHYMKO: Jak pak ale nejdu tu spravnou nestovanou navigation service?
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    JACHYMKO: Ten je bohuzel malo ohebnej. Chci tam mit vlastni browser, v nem navigovat vpred/vzad. Navic mi ten Frame zobrazuje tu navigacni listu, kterou nechci.

    Navic ja ty views mam hierarchicky bohuzel. Takze tam budu mit nejakou instanci a v ramci ty instance potrebuju taky resit zpet/vpred.

    A nebo jsem tu NavigationService tak uplne nepochopil a skryva prede mnou svoje ficury :).
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    JACHYMKO: no prave,proto sem se snazil doporucit trochu jinej pristup, obejit to tim, ze si budes uchovavat jen to nejnutnejsi aby si mohl znova nahodit co si tam mel.

    to problem neni, jen to je treba dobre navhrnout aby to bylo flexibilni.
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    JACHYMKO: no a nebude to zbytecne zasirat spoustu pameti ?
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    JACHYMKO: jenze to nevyresi ty jeho kontroly.
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    TENCOKACISTROMY: ja ti rozumim, ale asi ti to blbe vysvetluju :)
    ale v podstate des tou spravnou cestou
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    ANDY_WARHOL: Asi si nerozumime :).
    Muj pozadavek je takovej, abych mohl na akce "navigovat, zpet, vpred" reagovat flexibilne. Nechci aby to bylo zavisly na tom jestli se budu navigovat v browseru a nebo ve vlastnich wpf controlech. Coz znamena, ze jednak budu muset udelat nejakej kontajner, kde budu trzet tu historii a "budoucnost" pro zpet/vpred. A zaroven budu muset vytvorit nejakej subsystem pro zajisteni toho zobrazovani contentu (vcetne toho, abych se objevil na spravne odscrollovanym seznamu).

    A tak se ptam, jestli vas nekoho nenapada jak to spravne udelat nebo jestli neco takovyho dokonce i neznate. Zatim nejbliz mi prijde memento pattern, kterej v sobe ma polozky s metodama undo/redo (cili zpet/vpred). Nechci vymejslet kolo, potrebuju aby to bylo funkci a mam na to tak den casu.
    Kliknutím sem můžete změnit nastavení reklam