Laden...

Forenbeiträge von ScoobyDoh! Ingesamt 69 Beiträge

07.04.2011 - 14:19 Uhr

Mir klar mir klar 😉
Ich wollte ja zur runtime IsReadOnly = true setzen, wenn ich an einem bestimmten punkt keine Eingabe möchte.
Dann sieht es halt bissl schräg aus, wenn sich das Design des ding komplett ändert.

Aber trotzdem nochmal danke 😉

gruß ScoobyDoh!

07.04.2011 - 13:10 Uhr

Soweit klar,
ich wollte halt die TextBox als Anzeigefeld für informationen benutzen, nur eben meine eigenen Farben dazu benutzen.

Aber meine eigentliche Frage bezog sich darauf, ob das nun so von Microsoft gewollt ist das man eine Textbox mit IsReadOnly eigenschaft nicht unformatieren darf und so wie ich das verstanden hab ist das so.

somit wär das dann auch erledigt 😉

gruß ScoobyDoh!

07.04.2011 - 10:03 Uhr

Heyho,

mir is gerade etwas kurioses aufgefallen und wollte gerade mal wissen ob das ein Bug, oder fehler von mir oder nicht unstertützt wird.

Das alles spielt sich nun in Expression Blend ab,
ich hab also eine TextBox und diese Formatier ich mir nach meinen Wünschen.
Hintergrundfarbe, Schriftfarbe, Border, usw..

Wenn ich nun allerdings die TextBox auf "IsReadOnly" stelle ist die Textbox in ihrer Urspungsform Formatiert, also grau.
Die Formatierung bleibt aber erhalten, spricht sie wird nicht gelöscht, die definitionen für den Background usw.. sind noch da nur wird es nicht so dargestellt.

weis einer warum das so ist?

gruß ScoobyDoh!

05.04.2011 - 14:51 Uhr

Das setzt sich jemand den vorabend hin,
überlegt sich wie man den Text wohl am besten Formulieren würde,
und dann haut er alle übers Ohr.

Meine Güte, echt professionell 😉

Mir is grad erst aufgefallen, das die verlinkung zu dem Thread hier nicht mehr existiert und hab ihn gesucht. ^^

LOL
"ja ballbalblablabla die Funktion funktioniert noch nicht überall, stellenweise gibt es noch Probleme" blabla^^ Ärsche, aber gut gemacht! 😛

gruß ScoobyDoh!

05.04.2011 - 10:30 Uhr

Ich hab mich jetz länger damit beschäftigt, aber ich komm immer noch nicht klar.

Und zwar wollt ich mit meiner kleinen Beispiel app darauf aus, das in meinem Model sich ein Wert Ändert und aufgrund dieser Änderung eine Veränderung in der View stattfindet.

Oder lieg ich da falsch das das mvvm nicht auf das aus ist?

Ich möchte hier nicht auf Usereingabe reagieren, sondern auf veränderungen in meinem Model.

Und das Model ist doch per two-way-binding an das Viewmodel gebunden und das wiederum durch two-way-binding an die View (je nach UI Element).

Wo es bei mir jetzt hackt ist, wie ich dem ViewModel bescheid gebe das sich im Model was geändert hat.

gruß ScoobyDoh!

01.04.2011 - 08:38 Uhr

Ich finde die Idee doch sehr interessant,
für uns User scheint das ja weniger schlimm zu sein, die Arbeit machen sich damit die Mods.

Wenn es sich nicht bewährt wird man es wieder ändern, davon geh ich jetzt einfach mal aus. Deswegen würd ich sagen: "abwarten".

Nur ganz verstehen tu ich das jetzt nicht, ich kann ja trotzdem antworten, obwohl da steht "Thread automatisch geschlossen".

30.03.2011 - 15:28 Uhr

Also ich bin jetzt kein profi,
und wir haben mal in einem Projekt aus Gründen das wir es nicht besser wussten bei einem ähnlichen Fall etwas ausprobiert.

Es wird dir hier nicht viel helfen denk ich, aber einen kleinen Performance gewinn gegenüber dem öffnen einer Datei und dem auslesen von Datum und Uhrzeit bringen.

Da du vom Client ja nicht auf dem Server zugreifen kannst und nur ftp zur verfügung hast ist es nach meiner logik unumgänglich das sich der Server beim Client meldet.

ich würde eine Datei schreiben und vom Server aus versuchen diese Datei zu erreichen, existiert die datei nicht, passiert auch nichts, existiert die Datei heisst das das der Client veränderungen vorgenommen hat und schickt veränderten Daten an den Server.

Bauerntechnik, ich weis ^^. Wenn der Client aber zum globalen Internet zugang hat könnte man es ja von anderer Seite versuchen dem Server zu erreichen, aber ich denke das wird in deinem Fall auch nicht möglich sein.

30.03.2011 - 08:48 Uhr

Ich versteh nicht ganz wie ich das ganze gefüge auf meine mini-app nun abstrahiere.

Ich hab im Model bestimmte Variablen, wenn sich diese ändern sollte in der view was anderes angezeigt werden.

in meinem Model befindet sich folgende Funktion

Model.cs



public Brush selectBrush(bool state)
        {
            Brush selectedBrush;

            if (state == false)
            {
                selectedBrush = GreenBrush;
            }
            else
            {
                selectedBrush = RedBrush;
            }

            return selectedBrush;
        }


Der Brush soll nun auf die Oberfläche.
Ich weis man könnte das hier eleganter lösen nur arbeite ich mich gerade vor für ne WP7-App wo man brushes im Code nach UserEingaben erzeugen soll.

Was ich bis jetzt habe ist doch falsch, oder? Hier wird ja geschaut ob sich der _stateBrush ändert und erst dann wird OnNotifyPropertyChanged aufgerufen. Doch mein Brush findet sich jetzt nicht in der ViewModel sondern im Model.

MainPageViewModel.cs



public class MainPageViewModel : ViewModelBase
    {
        public Model modelI;

        private Brush _statebrush;

        public MainPageViewModel()
        {
            modelI = new Model();

            _statebrush = modelI.selectBrush(modelI.Launched);
        }
        
        
        
        
        public Brush StateBrush
        {
            get
            {
                return _statebrush;
            }
            set
            {
                if (_statebrush != value)
                {
                    _statebrush = value;
                    OnNotifyPropertyChanged("Hintergrund");
                }
            }
        }
    }


Irgendwo hab ich da nen gewaltigen Fehler, ich denk ich habs noch nicht kapiert.
Diese Zeilen kommen mir eh ein wenig schleierhaft vor.


if (_statebrush != value)
      {
               _statebrush = value;
              OnNotifyPropertyChanged("Hintergrund");
       }

Danke für eure Geduld 😉

gruß ScoobyDoh!

29.03.2011 - 14:22 Uhr

Das binden eines Brushes erfolgt ganz einfach, indem du diesen im ViewModel per Property anbiertest. Das Property muss einen öffentlichen getter haben.

public Brush GreenBrush { get; private set; }  

Im View bindes du das ganze dann wie folgt:

Background={Binding GreenBrush}  

Gruß
Christoph

Eines ist mir hier noch nicht klar.
Ich hab ja zwei Brushes die übergeben werden sollten, eben nach Status.

Also schreib ich das erstmal so:


public Brush StateBrush
        {
            get
            {
                return _statebrush;
            }
            set
            {
                if (_statebrush != value)
                {
                    _statebrush = value;
                    OnNotifyPropertyChanged("Hintergrund");
                }
            }
        }

Ich hoff das ist soweit richtig.

Da ich das MVVM komform umsetzen möchte, ist mir nicht ganz klar, wie ich in statebrush den Brush reinbekomm (also entweder Rot oder Grün).

EDIT:
klar wird mir auch nicht warum ich einen Converter brauch? ICh hab nen Brush und die Background Property erwartet ja einen Brush.

29.03.2011 - 10:29 Uhr

Um die Usability zu steigern hab ich allerdings vor Seite für Seite in meiner App gleich aussehen zu lassen, da wären "globale" klassen stark vom Vorteil.

verstehe ich nicht ganz. mit der Style Klasse kannst du doch mit jeder View auf die Styles zugreifen oder geht es dir darum diese auch Sofort im Designer zu sehen?
Wenn ja dann definiere die Styles im selben Projekt

  1. Ja Genau darum geht es mir 😉

  2. Dann werd ich das so machen, vielen dank für den Tippo ^^

29.03.2011 - 10:21 Uhr

Ne ich hab einen Fall mit zwei Möglichkeiten (deswegen die bool).
Beim ändern der bool soll die Hintergrundfarbe eines Canvas sich ändern, entweder in Rot oder Grün.

Die beiden Brushes liegen im Model hardgecodet vor. Bis jetzt, ich weis net ow3 ich die am besten hinschieben soll, da ich die gleichen Farben über mehrere Silverlight Pages brauch.

29.03.2011 - 08:26 Uhr

...
Daher probiere dein Model (bzw. deine Domainlogik) immer eine Schicht tiefer zu halten als die ViewModel schicht und sie den ViewModels im Constructor zu injizieren.
...

Ok, zurzeit sieht es eh so aus das ich das Model in meiner ViewModelBase indiziere, ich dachte ich mach das damit ich das Model in allen meinen erben (PageViewModels) verfügbar hab.
Oder würde es so aussehen das ich nach MVVM für jede View ein eigenes ViewModel und eine eigenes Model habe? Nö glaub ich nicht.

Meine Frage bezog sich aber jetzt genau darauf wie ich ein Brush an die Property Background binden kann. Klasische Databinding hab ich schon verwendet, nur hier nützt es nichts wenn ich meine versuche poste und frage was nicht funktioniert, da ich anscheinend noch nen lag hab und das noch nicht ganz verstehe.

gruß ScoobyDoh!

28.03.2011 - 15:33 Uhr

Hallo MeisterAlex,

ok hmmm. also ich hab noch vergessen das ich auf dem WP7 schaff und mehre Seiten habe. Und über alle Seiten hinweg die sich in der WP7 App befinden brauche ich die gleichen Farben für die Hintergründe meiner UI-Elemente.

Dazu hab ich (vorerst) die Farben im Model (ja das gehört da nicht hin 😄 ) definiert. Zurzeit sieht mein model folgendermaßen aus.


        // Meine Variablen
        public bool Activated = false;
        public bool Launched = false;
        public bool OnNavigated = false;

        // Meine Brushes
        private Brush GreenBrush = new SolidColorBrush(Color.FromArgb(255, 26, 150, 26));
        private Brush RedBrush = new SolidColorBrush(Color.FromArgb(255, 167, 6, 6));

        public Model()
        {

        }

        public Brush selectBrush(bool state)
        {
            Brush selectedBrush;

            if (state == false)
            {
                selectedBrush = GreenBrush;
            }
            else
            {
                selectedBrush = RedBrush;
            }

            return selectedBrush;
        }

eine Instanz von Model erzeuge ich in meiner ViewModelBase.
Da meine ViewModels von dieser erben und ich in jeder View die Farben benötige.

Dem Tutorial folge ich und schreibe in meine MainPage.xaml.cs folgendes:
Tutorial: http://www.labo-dotnet.com/post/Creating-your-first-MVVM-silverlight-application-on-windows-phone-7.aspx


        private MainPageViewModel _mainViewModel = new MainPageViewModel();

        public MainPage()
        {
            InitializeComponent();
            DataContext = _mainViewModel;
        }

Soweit das ich das testen kann bin ich noch nicht.

Die Idee nun ist das jedesmal wenn sich die Variablen ändern sich auch in der View die Hintergrundfarbe meiner Canvas änderrt, doch bin ich jetzt total verwirrt^^

gruß ScoobyDoh!

28.03.2011 - 13:38 Uhr

Hallo,

ich bau gerade meine erste kleine App um das verständnis und die Arbeitsweise des Bindings mir aufzuzeigen. Ich arbeite mit dem WP7-Dev-Kit.

Jedenfalls hab ich 3 globale Variablen und wenn sich einer dieser Variable ihren Wert verändert möchte ich einem Canvas einen anderen Hintergrund geben.
Die Brushes für die Hintergrundfarbe sind im Model definiert.

Die Variablen sind vom Typ bool und ich hab eine Funktion die mir den gewünschten Brush zurückliefert.

Wie bewerkstellige ich das mithilfe des MVVM Patterns?

Bin irgendwie bissl ratlos, vielleicht hat auch gerade jemanden einen nützlichen link dann les ich mir das auch selbst durch

schonmal vielen dank fürs lesen

gruß ScoobyDoh!

25.03.2011 - 14:00 Uhr

@David W:
Doch das Argument zieht doch.

Man darf nicht vergessen zu was der User Konditioniert ist.
Der User erwartet links oben immer das Logo, wie im Internet auf WEbsites auch. Als Beispiel kannst du ja mal nach oben Scrollen.

Jedenfalls, der Button ist eben auch ein Logo, und der "normale" User versteht es nicht, das sich hinter einem Design Relevanten, formschönen Logo funktionalität versteckt.

Und das blinken: hmmm naja
Also das blinken ist mir jetzt erstr aufgefallen, als ich gelesen hab das er blinken soll. Das UI ist so überladen das das Logo wirklich wenig Aufmerksamkeit bekommt.

Meine Meinung 😛

gruß ScoobyDoh!

25.03.2011 - 13:24 Uhr

Bevor man die Styles auslagert kann man sie auch direkt in den Resourcen der View definieren. Der Designer würde den Style immer anzeigen Ohne kompilieren zu müssen

Um die Usability zu steigern hab ich allerdings vor Seite für Seite in meiner App gleich aussehen zu lassen, da wären "globale" klassen stark vom Vorteil.

Mir auch unverständlich warum es sowas nicht gibt, ich hab das jetzt einfach vorrausgesetzt^^

25.03.2011 - 11:54 Uhr

Coole Sache,
werd ich mal probieren.

Jedoch bin ich dann von der verwendung des MVVM net schlauer geworden, was kann denn ein Designer anfangen, wenn er die Styles nicht sieht und immer kompilieren müsste.

Für meine Zwecke jetzt, vollkommend ausreichend, aber ich denk nicht das das die Bahnbrechende Lösung ist, oder doch?

Vielen dank schonmal ProGamer!

Ganz klar wird mir die Notation hier nicht,

Source="/MyClassLib.Styles;component/Styles.xaml"

Was ist nun die MyClassLib? Und warum darauf die Referenz?
Die Styles befinden isch aber in der Styles.xaml, oder?

25.03.2011 - 11:37 Uhr

Und was geht nicht?
Ich habe selber ein Silverlight Projekt in dem alle Styles in ein eigenes Projekt
ausgelagert worden sind. Im Designer sehe ich den Style dann zwar nicht aber zur Laufzeit

Also geht doch... ^^
Gut wie hast du denn das bewerkstelligt? Würde mir bei meinem Problem jetzt stark helfen, dann könnte ich für mehrere Seiten die gleichstarke Identität zu der Logik haben ein ViewModel benutzen, das hoff ich zumindest.^^

25.03.2011 - 11:23 Uhr

Styles kann man auslagern?

Das wär mein erster Ansatz gewesen, aber das geht ja nicht.

Entweder in externe ResourceDictionaries die man einbindet oder in die App.xaml. Ich style prinzipiell 90% meine App in einem ResourceDictionary, welches ich zur Laufzeit in der App.xaml einbinde und style nur in Ausnahmefällen in den einzelnen Views.

Aha hört sich sehr interessant an.
Kannst du dann auch in Expression Blend designen? Oder schließt sich das mit der Methode aus?

danke für deine Antwort

gruß ScoobyDoh!

25.03.2011 - 10:52 Uhr

...
Wenn es nur ein bestimmtes Set an verschiedenen Farben gibt, sollte die View nur die Information bekommen welches "Schema" oder "Style" gerade aktiviert ist und die View entscheidet dann anhand von Triggern usw. welche Farbe dafür zu verwenden ist.

Lg XXX

Das hab ich soweit begriffen und ist auch nachvollziehbar.
Aber da ich auf dem WP7 schaff und eine App dort mal schnell über 10 Seiten haben kann, ist es mehr arbeit in jede View von jeder Seite die Klassen reinzuschreiben, dann spar ich mir gar nichts und machs mir nur noch unübersichtlicher, das wollte ich eigentlich mit dem MVVM umgehen.

Aber hab nun keine Idee wie.^^

25.03.2011 - 09:54 Uhr

Danke für eure Antworten,

aber irgendwie hab ich das noch net kapiert, oder kann es nicht auf meine belange abstrahieren.

Ich hab folgendes Problem,
ich hab mehrere Silverlight Pages in meiner App, auf diesen Pages ist eine wiederholung der gleichen UI Elemente zu sehen, in meinem Fall sind das Canvas('es?) .

Zuerst dacht ich ich schreib mir eine Silverlight style class und übergebe damit dann eben die Properties.

Nun möchte ich einen Brush im Code behind erzeugen, also zwei. Und wenn ich nun meinen bool HintergrundRot habe, dieser auf true ist soll sich das Canvas rot färben, über alle Pages hinweg und wenn nicht dann eben blau.

Nun wollt ich im ViewModel mir zwei Brushes definieren im Model meine Variable HintergrundRot, und in der View mein Canvas das per Binding mit dem ViewModel verbunden ist über die Propertie "Background".

Nur find ich jetz gar keinen Ansatz, wie ich das nun bewerkstellige.

24.03.2011 - 15:05 Uhr

Eine Frage hätte ich noch, warum hast du in folgenden Beispiel das Model und das ViewModel als Interface deklariert?

...
//EDIT:
Die Schnittstellen von ViewModel und Model sehen wie folgt aus:

  
//Model:  
public interface IChat  
{  
   public void SendMessage(string message);  
}  
  
//ViewModel (muss nicht unbedingt ähnlich wie das Model heißen - könnte durchaus auch mehrere Models verwenden):  
public interface IChatViewModel  
{  
   public string Message { get; set; }  
   public ICommand SendCommand { get; }  
}  
  
  
24.03.2011 - 13:05 Uhr

ich schaff ja auch mit Silverlight, daher genau richtig 😉

vielen dank.

OH, sogar noch in Deutsch, wahnsinn, bis jetz noch nicht gefunden, super Sache und vielen dank.

24.03.2011 - 11:20 Uhr

Meiner Meinung nach (Muss nicht Richtig sein) sollte jede View ihr eigenes ViewModel
...

Soviel wie ich jetz davon gelsen hab, ist das MVVM Pattern eh auslegungssache, in vieler hinsicht. Jeder spricht ja nur von seiner Interpretation von MVVM, ein allgemeingültige "NORM" gibt es ja nicht.

Deswegen ist deine Meinung immer gern gehört 😄

Vielen dank für eure Antworten ich probier das mal jetzt aus, aber ein einfaches Beispiel mit wenig Code im Web gibt es nicht, oder?
Finde nämlich nur overkill bespiele^^

gruß ScoobyDoh!

24.03.2011 - 10:22 Uhr

Hallo, ich meld mich nochmal zurück,

ich wollte nun das MVVM Pattern umsetzen, nun hab ich dazu noch eine Frage,
und zwar kann man ein ViewModel für mehrere Views benutzen.

nehmen wir an, ich hab eine KOntaktliste, wo ich auf meiner MainPage eine übersicht habe, hier bekomm ich ein Bild, Vorname und Nachname angezeigt.
Auf einer DetailsPage, möchte ich aber mehr Information von einem Kontakt anzeigen lassen, entspricht es da dem MVVM Pattern, das ich für mehrere Views mich an ein ViewModel binde?

gruß ScoobyDoh!

23.03.2011 - 10:00 Uhr

Um das Navigationsmodell besser zu verstehen hab ich noch ein paar Fragen zu Silverlight.

Und zwar möchte ich gerne wissen wie man den NavigationStack auslesen kann, also wieviel Seiten sind in diesem Vorhanden, welche uris sind darin enthalten?

Wo kann ich auslesen von welcher Seite ich auf die aktuelle Seite navigierte.

Und wie kann ich herausfinden welche Instanzen von seiten in meinem Projekt gerade existieren. Mir ist aufgefallen das auf dem Windows Phone bei jeder Navigations auf eine Seite, sowie die reaktivierung der Konstruktor nochmals durchlaufen wird.

Wird nun jedesmal eine neue Instanz einer Seite erstellt, oder eine nur neu geladen?

Würde mir das alles im Code ausgeben lassen, falls möglich.

schonmal danke fürs lesen.

gruß ScoobyDoh!

23.03.2011 - 08:32 Uhr

hey Pico,

sorry das ich nicht mehr geantwortet habe, bei uns ist das Inet weg.

Ich bin ja eigentlich voll der noob in Silverlight, aber wenn du die Browsergröße, oder eben die Silverlight größe auslesen willst, würd ich das folgendermaßen versuchen.

Nimme in Canvas, Visibility Collapsed, Margin = 0;
Somit müsste es sich ja auf die maximal mögliche größe ausbreiten.
Dann liest du von deinem Canvas die Width und Height aus.

Is halt net schön das so zu Regeln, aber ich würds mal so versuchen.

gruß ScoobyDoh!

17.03.2011 - 14:33 Uhr

Ah ok,
ja dann kann ich ja im Normalfall die CodeBehind eh leer lassen.

Wird aber in meinem Fall (Windows Phone 7) vielleicht ein bisschen anders funktionieren, ich brauch ja eine Datei die von "PhoneApplicationPage" erbt, hier trigger ich ja meine Usereingabe in den Events ab. Wie hier auch auf die Rotation des Smartphones reagiere, wenn der User das Phone schräg/waagrecht hält.

Als praktische Umsetzung des MVVM-Pattern, oder zumindest dieses teilweise zu erfüllen würd ich das folgendermaßen Umsetzen,

View - XAML

ViewModel - bereitstellen der Converter sowie den Properties für das Databinding

Codebehind - reagieren auf die Events der Usereingaben
-> Model - Logik
17.03.2011 - 08:57 Uhr

Ich hab jetzt mit silverlight für web noch nichts zu tun gehabt.

Aber ich denk wo das Problem liegt,
du hast ja eine feste Größe deiner "SilverlightApp". Also damit mein ich die optische Größe die du auf den Bildschirm siehst. Was du aber in Silverlight machen kannst ist ja auch außerhabl des Anzeige Bereichs Elemente positionieren, also z.B. im Code ein Rechteck über den Rand "hinausschieben".

Sehen tust du das nicht, das gleiche wird mit deinem PopUp auch passieren.
Ich hab das in Flash folgendermaßen mal gelöst.
Lege den Registrierungspunkt, also den Referenzpunkt deines PopUps in Relation zur Globalen SilverlightApp nach rechts unten.

Was mein ich damit?
Schau das dein PopUp wenn du es positionierst den rechten untersten Anzeigepunkt des PopUps benutz (ich finde keine besseren Wörter -,-).
Dein PopUp würde dann also wenn du es zentrierst an den Mittelpunkt anliegen und zwar am rechten unteren Registrierungspunkt deines PopUps.

Wenn das machbar ist, positionierst du das PopUp ganz normal und dann sollte das gehen.
Falls das nicht so einfach funktioniert wie ich mir da vorstele, versuch einen Canvas darumzustricken, den musst du dann halt so breit machen wie dein größtes PopUp breit wär.

Ich hab mal darauf geantwortet, da noch keine Antwroten waren, ich hoff ich konnt dir weiterhelfen, oder wenigstens einen Denkansatz bieten.

gruß ScoobyDoh!

17.03.2011 - 08:49 Uhr

Vielen danke euch beiden.

Im Silverlight Kontext heisst das dann,

View = XAML Definition mit den Bindings an Properties die in dem ViewModel hängen. Das würde ja auch bedeuten, das mein ViewModel die CodeBehind Datei meiner View ist.

Das ViewModel greift dann gerade auf meine Logik zu, oder dessen Struktur die ich in Klassen abarbeite.

In dem ViewModel erstell ich mir dann eine Instanz meines Objekts und über dessen Instanznamen greif ich auf die Properties zu, denen ich dann noch das Binding im C# erlaube.

Ich glaub ich habs verstanden.

Bin in der ganzen Geschichte noch etwas neu. ^^

Aber vielen dank schonmal.

gruß ScoobyDoh!

16.03.2011 - 16:00 Uhr

Hallo Community,

ich hab das MVVM Pattern noch nicht ganz verstanden, so denke ich.

Beim "Model View - View - Model" Pattern bau ich doch meine App, oder in Silverlight meine Page aus folgenden Objekten auf.




 [color]MODELVIEW -> Die Klassee die die Binding zu verfügung stellt[/COLOR]

 [color]VIEW -> in Silverlight die in Xaml Beschriebene Oberfläche[/COLOR]

 [color]Model -> Code Behind (Logik)[/COLOR]


Ich hoffe das hab ich soweit richtig verstanden.
Die Bindin werden doch dann folgendermaßen gesetzt... die View bindet sich an die ModelView und die ModelView an das Model, per "twoWay-binding"?

Weitere Fragen beziehen sich auf die ModelView Klasse.
Wie verwende ich das in der Praxis?
Mir werden die BeispielCodes die ich im Internet gefunden habe nicht ganz klar, z.B. folgender hier, wo passiert hier denn das Binding?

MVVM for Tarded Folks Like Me or MVVM and What it Means to Me

Es würde mir auch schon stark wenn mir hier einer von euch eine einles lektüre verlinken kann, am besten irgendwas im Web, ich möchte nur ein Grundverständnis erstmal dafür haben und mir nicht wieder einen Schinken von Buch kaufen über ein Thema.

schonmal danke fürs durchlesen.

gruß ScoobyDoh!

07.03.2011 - 13:53 Uhr

Hallihallo,

ich meld mich nochmal zurück und zwar hab ich noch ein paar verständnisfragen die sich mir noch nicht ganz geklärt haben.

  1. DataBinding an die Textpropertie von Textboxen möglich?

  2. Ich möchte nun in meine Texblöcke z.B. einen Festen Text angeben und dahinter die vom Databinding eingefügten Daten haben.

also z.B. sowas (nur zur verdeutlichung)

<TextBlock Text="Ortschaft: {Binding Path=Ort}"
03.03.2011 - 10:59 Uhr

So, nochmal danke für die Hilfe, jetz funktioniert es.

eine Frage hätt ich noch, bei mir ist es nun so, das bestimmte Felder auch leer sein können, also keinen Wert enthalten.
Durch das Binding wird dann automatisch der Wert 0 zurückgegeben. wie kann ich das unterbinden?.

Gibt es da eine Einstellung / Funktion?
Oder muss ich mir mit einer Abfrage behelfen?

02.03.2011 - 10:09 Uhr

...

Ich empfehle dir dazu ein Buch zu kaufen und dich langsam in komplizierte Dinge einzuarbeiten.

Versteh mich nicht falsch... aber wenn man noch kein Fundament hat auf dem man aufbauen kann bringt das alles nix.

lg

Kein Ding ist auch vollkommen verständlich 😉
Nur muss das jetzt in meinem Projekt einfach schnell funktionieren das ich weitermachen kann.

Bevor ich das Projekt anfing war mir ja noch gar nicht klar das ich DataBinding benötige.
Soweit funzt das jetzt auch. Nur noch net ganz richtig. Kann sein das ich nochmal die Hilfe brauche, derweil komm ich aber weiter.

Aber mir ist auch klar geworden das, das Thema DataBinding doch mehr einarbeitungszeit benötigt wie ich jetzt zur verfügung habe.

Trotzdem danke für eure Geduld und vielen dank an "David W" für den sehr hilfreichen Beitrag.

gruß ScoobyDoh!

01.03.2011 - 15:36 Uhr

@aequitas:

versteh schon das man hier angepisst is wenn jemand jeden scheiss nachfrägt, aber ich hab das Beispiel von oben den ganzen Nachmittag durchgearbeitet und ich bekoms einfach net hin.

01.03.2011 - 15:28 Uhr

@TH69,

ah danke 😉
Das hat mir zumindest das verständnis schonmal um einiges weitergebracht.

Hab jetz auch schon alle möglichen Ergebnisse ghabt, bis auf des was ich haben will.

in meiner Liste, an der Position X, möchte ich allle Eigenschaften mir in der Liste Anzeigen lassen.

01.03.2011 - 14:20 Uhr

Ich hab jetzt echt rumprobiert und es funktionierte nichts.
Also wie war das nun genau gemeint?

Ich erklär nochmal kurz wies bei mir jetz ausseiht:
Ich deseralisiere eine XML datei und lade mir somit eine Liste vom Typ Kontakt und diese möchte ich gerne an die ListBox dranhängen. Und zwar soll dann in der ersten Zeile der jeweilige Eintrag und in der zweiten dann der Wert stehen.

Die Liste einfach aub ObservableCollection umzustellen hat erstmal nichts gebracht.
Und wie ist das mit dieser weiteren Klasse gemeint?


class Kontakte : ObservableCollection<Kontakt>

Und das wars... und dann kann ich das an die Listbox binden? Das hab ich nun auch versucht, aber da geschah auch nichts, auch keine Fehlermeldung.

gruß ScoobyDoh!

01.03.2011 - 11:26 Uhr

Hallo,

danke für eure Antworten, leider bin ich immer noch nicht weitergekommen.

Ich Serialisiere die Liste aus einer XML und den Inhalt meines Arrays/Liste möchte ich dann an die Listbox binden.

01.03.2011 - 10:03 Uhr

Hi Smou,

die Seite kannt ich schon, trotzdem danke, ich glaub ich mag das heute net ganz kapieren wie das funktioniert.

Gbit es eigentlich noch alternative Möglichkeiten, wie man eine Listbox mit Information von einer Liste füllt?

gruß ScoobyDoh!

01.03.2011 - 09:10 Uhr

Halli hallo,

wie kann ich denn eine von mir Typisierte Liste List<Kontakt> per binding an eine Listbox hängen.
Die Liste enthält aber verschiedene Typen, von DateTime, bools, strings.

wie bewerkstellige ich das?

schonmal danke fürs lesen.

gruß ScoobyDoh!

24.02.2011 - 16:01 Uhr

Vielen Dank für deine Antwort, aber kannst du mir da vielleicht ein konkretes Beispiel geben, dann wirds klarer, habs glaub ich falsch verstanden was du meinst.

24.02.2011 - 15:39 Uhr

Hey Taipi88,

danke für deine Antwort.

Ich hab ja eine Liste die ich Serialisiere (<string,object>), jedoch ist es so das ich ja die einzelnen Werte mit [Data Member] ausrüsten muss, damit er mir sie Serialisiert.

Und wo soll ich das hinschreiben wenn ichs dynamisch mag. Das ist die Frage.

ich find auch im Netz nichts, ist nun auch das erste WP7 Programm was ich schreibe und ich möcht net nochmal meinen Code komplett über den Haufen werfen.

gruß ScoobyDoh!

24.02.2011 - 14:25 Uhr

ich push ja echt ungern, aber ich hab das Problem noch nicht gelöst.

Kann es vielleicht sein das man mir Grundsätzlich von den Serialisieren abraten sollte? Oder was meint ihr?

18.02.2011 - 11:25 Uhr

OH,
ja hätte damit rechnen müssen das die Antwort kommt.

Ja das ist in diesem FAll nicht möglich!
Denn, ich schaff auf dem WindowsPhone und dort starte ich den PhotoChooser Task und zu diesem wird eben auch hinnavigiert und wenn der Photochooser wieder zu meiner Seite Navigiert, möchte ich das wissen.

Daher muss ich auslesen, falls möglich, woher gerade navigiert worden ist.

Danke für deine Antwort Max1809.

gurß ScoobyDoh!

18.02.2011 - 11:11 Uhr

Hallo an alle,

also ich hab ein kleines Problem.

Und zwar möchte ich nur herausfinden: Wenn auf eine Seite in der WP7 Anwendung Navigiert wird, wie kann ich auslesen von welcher Quelle (URI) navigiert wurde.

Konkretes Beispiel: Ich hab eine Page MainPage und eine Page SecondPage.

Nun Navigiere ich mittels URI von MainPage nach SecondPage und möchte nun in der SecondPage mir die Information auslesen von welcher Seite Navigiert wurde (in diesem Fall MainPage).

Bestimmt ein leichtes unterfangen nur wurde ich aus der Doku nicht schlau und meine Versuche haben mich auch nicht weiter gebracht.

gruß

ScoobyDoh!

17.02.2011 - 11:17 Uhr

Hallo Community,

ich habe eine Frage zu dem DataContractSerializer.

Und zwar sieht es bei mir so aus, das ich eine Klasse Kontakte habe von denen ich mir Instanzen (Kontakte) in eine Typisierte Liste der Kontakt-Klasse lade.

Die Kontaktklasse sieht nun so aus.


    [DataContract]
    public class Kontakt
    {
        [DataMember]
        public string Name { get; set; }
        [DataMember]
        public string Vorname { get; set; }
        [DataMember]
        public int Alter { get; set; }

        // Vom Bild nur der Dateiname verwendet
        [DataMember]
        public string Bild { get; set; }
        [DataMember]
        public int ID { get; set; }

        public Button btn { get; set; }

    }

Mein Problem ist nun folgendes, ich möchte für jeden Kontakt mindestens dies Information die oben beschrieben ist zur verfügung stellen (Name, Vorname, Alter, Bild und ID).
Der User soll aber über ein Eingabe feld, weitere Informationen zu einen Kontakt hinzufügen können. Also mehrere Parameter und deren Werte auch festlegen.

Ich Serialisiere meine Liste, die als Inhalt, Instanzen hat mit deren DataMembern, wie kann ich nun weitere Parameter hinzufügen, das diese auch Serialisiert werden.
Welche Parameter das sind, weis ich vor der Runtime ja noch nicht und somit kann ich diese Parameter auch nicht in die Klasse Kontakt hineinschreiben.

ich glaub das beschreibt mein Problem soweit

schonma danke fürs Lesen

gruß ScoobyDoh!

14.02.2011 - 10:02 Uhr

Hallo,

ich bin ja noch recht neu in silverlight.

Aber wie läuft das jetz ab, wenn ich eine XML herunterlade, diese lokal auf dem IsolatedStorage abspeichern möchte un zu einem späteren Zeitpunkt öffnen.

Ich hab ein bestehendes Objekt in dem ich eine XML DAtei wärend der Laufzeit erzeuge, diese abspeicher und lade. Jetz möchte ich einbauen das eine Datei heruntergeladen wird und abgespeichert, das möchte ich gerne mit meiner Serialisierung verknüpfen.

Wie speicher ich die Datei in den Iso Storage?
Byte für Byte abspeichern, oder welche Möglichkeiten gibt es.
Ich habe für mein konkretes Probem kein Beispiel gefunden 😭.

gruß ScoobyDoh!

10.02.2011 - 16:11 Uhr

heyhey,

ich hab die Lösung für das Problem gefunden, oder sagen wir ich habe gefunden das wes keine Lösung gibt.

In Silverlight kann man aus dem IsolatedStorage nicht raus. PUNKT!

Die Ordnerstruktur ist folgende:


Applications
 - Data
   - GUID (Eine erstellte Product ID)
     - Data
       - Isolated Storage (und aus dem kommt man nicht raus)

   - Install(hier befindet sich das Projekt)

So, es gibt allerdings eine Möglichkeit das zu umgehen. Ist zwar nicht Elegant, aber es geht.

Und zwar kann über das XNA Framework auf den Projektordner zugreifen, da ja dort es nötig ist Texturen, Meshes, etc... dynamisch nachzuladen.

Nach hinzufügen der Assembly "Microsoft.XNA.Framework" kann man folgenden Code ausführen, der die Datei aus dem Projektordner lädt.


Stream Fs = TitleContainer.OpenStream("testordner/TextFile1.txt");

            if (Fs.CanRead)
            {
                MessageBox.Show("testfile loaded");
            }

Und somit kann man die Dateien laden.

==============================

Bei mir gehen aber jetz die Probleme grad weiter.

Und zwar möcht ich die Information der Datei, bei mir ist das eine XML nun verfügbar machen, also in meinem Fall muss ich die Datei in den Isoalted Storage kopieren.
Hier kommt mein wissen stark an seine Grenzen, denn jetz wrids kompliziert (so nehme ich das an).
Ich hab erstmal versucht die Datei mit "ReadByte" auszulesen und die Information dann in dei datei im isolated Storage zu schreiben,hat mir nicht funktioniert.

Und jetz brauch ich beistand, da ich keine Ahnung hab wie ich das bewerkstelligen sollte 😉

Danke für eure Hilfe und Antworten

gruß ScoobyDoh!

10.02.2011 - 14:24 Uhr

Der Isolated Storage ist ein eigener Speicherbereich, den man speichern und wieder laden kann.

Direkt drauf zugreifen, ohne die Isolated Storage Routinen, das geht nicht.

Sonst wäre das Wort "isolated" ohne Sinn.

Wie war wie war, jedoch muss ich ja jetz die Dateien die ich meinem Projekt zugeordnet habe ja dem Isolated Storage hinzufügen.

Schreibe lieber

if (IsolatedStorageFile.GetUserStoreForApplication().FileExists("testordner/TextFile1.txt"))  

statt

if (IsolatedStorageFile.GetUserStoreForApplication().FileExists("testordner/TextFile1.txt") == true)  

😉

Scherzkeks 😄

Google findet viele Beispiele für Verwendung des I.S. beim Windows Phone 7, z.B.

Danke, ich denke zwar das mein Problem nicht verstanden ist, jedoch schau ich mir die links mal an.
Vielen dank soweit 😉

gruß Shauntre

10.02.2011 - 13:40 Uhr

Der IsolatedStorage liegt woanders? o.O?
Sicher.. ich ging immer davon aus das es der aktuelle Projektornder ist.

Ok, also muss ich meine Dateien erstmal dem Isolated Storage hinzufügen, das wär dann die nächste frage: wie geht das?

Hab mir echt den Wolf gesucht, da wäre noch ein Tip net schlecht.

gruß ScoobyDoh!