Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Briefkasten
Thema: Selbstgeschriebene UWP App aufs eigene Handy übertragen
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Du kannst deine app auch über das DevicePortal (muss am Handy unter den Developer Settings aktiviert sein) uploaden und so installieren.

Thema: Win32 + PWA Apps im Windows Store. Sargnagel für UWP?
Am im Forum: Szenenews

Win32 Games machen im Store durchaus Sinn. In dem Zusammenhang möchte ich nochmal auf https://sharpgis.net/post/2019/05/14/The-future-UWP hinweisen.

Thema: Wie handhabt ihr Google Analytics & DSGVO auf euren privaten Seiten?
Am im Forum: Smalltalk

Danke, den GTM kannte ich noch nicht!

Thema: Wie handhabt ihr Google Analytics & DSGVO auf euren privaten Seiten?
Am im Forum: Smalltalk

Hi,

wie handhabt ihr Google Analytics & DSGVO auf euren privaten Seiten? Holt ihr euch die Einverständnis der Besucher oder habt ihr die Google Analytics Einstellungen so reduziert, dass keine Einverständnis notwendig wäre (zu letzterem habe ich noch nicht wirklich eine Checkliste mit Einstellungen gefunden die dies erlauben würden)? Oder seid ihr auf andere Tracking Tools gewechselt?

Thema: Microsoft Build 2019 - Live Stream
Am im Forum: Szenenews

Hier noch ein guter Artikel zu Win UI 3.0 und dessen Auswirkungen

https://sharpgis.net/post/2019/05/14/The-future-UWP

k

Thema: Microsoft Build 2019 - Live Stream
Am im Forum: Szenenews

Zitat von Abt
- Visual Studio Code als Cloud Dienst
Ist das sowas wie gitpod?

Thema: Microsoft Build 2019 - Live Stream
Am im Forum: Szenenews

Und was ist das diesjährige Resümee?

    [1].NET 5.0
    [2]UWP Validation
    [3]WIN UI 3.0

ad 1.) Ziemlich cool und dass so etwas kommen wird war auch irgendwie, irgendwann zu erwarten - now its gonna happen
ad 2.) Eher meh... Jetzt kommt zwar die UWP Validation, aber dass IDataErrorInfo für UWP unter einem neuen Namespace (als System.Component) veröffentlich wird, find ich kacke. Jetzt braucht man wieder einen Workaround, dass man die alten Validation Sachen verwenden kann
ad 3.) Bereits auf der Build 2018 wurde das Projekt Win UI vorgestellt. Jetzt zur Build 2019 ist das ganze Ding immer noch in einem Stadium, in dem man es nicht wirklich sinnvoll einsetzen kann. Jetzt wird Version 3.0 verkündigt mit u.a. einem Feature (Library auch von älteren Windows 10 Versionen nutzbar), dass bereits für die Vorgängerversion hätte gelten sollen.

Ich hätte mir nach .NET Core 3 irgendwie erhofft, dass jetzt was Konkretes zu einem Plattformübergreifenden UI Framework (mit XAML wuwuwuwu) geben wird. Aber es scheint wohl so, dass man auf AvalonUI und Konsorten zurückgreifen muss. Vlt. wird das dann später eh im Zuge einer neuen .NET Version übernommen? (wie in der JAVA Welt)!

Thema: Dynamischen PluginSystem mit Reflections und AppDomains
Am im Forum: Rund um die Programmierung

hi,

welche Exception wird geworfen? Bei AppDomains ist es immer wichtig, dass du angibst aus welcher AppDomain der Code ausgeführt werden soll. Wenn du nichts angibst, wird der Code in der DefaultAppDomain exekutiert.

Schau dir vlt. mal folgedes Beispiel an.

Thema: Web Api Hosting - Internal Server Error
Am im Forum: Web-Technologien

Hallo,

hier gibt es natürlich mehrere Möglichkeiten dies umzusetzen. Aber WebApi und AngularJS auf zwei Projekte auf zu teilen ist schon mal gut. Ob du die AngularJS Anwendung dann auf einer ASP.NET MVC Seite "hostest" oder eine statische HTML Seite hinterlegst ist Geschmackssache.

Im Normalfall und der Einfachheitshalber legst du zum Deployen deine Projekte in der Default Web Site ab, oder du erstellst eine neue (was vor zu ziehen wäre). Diese Site ist dann im optimalen Fall über den Port 80 aufrufbar.

In dieser Site kannst du, dann die zwei Projekte bzw. Anwendungen hinterlegen. Würden die zwei Anwendungen unter verschiedenen Ports laufen hast du mit CORS zu tun, was du vermeiden möchtest.

Thema: List mit Subklassen einer Basisklasse - Zugriff auf Subklassen Eigenschafen und Methoden
Am im Forum: Grundlagen von C#

Zitat von LaTino
@Briefkasten, das ist nicht das Problem, um das es geht.

LaTino

Keine Casts - überlesen.

[Edit]
Ohne Casts wirst du aber nicht drum herum kommen - mit allem anderen bist du wieder zu sehr gebunden und unflexibel.

Thema: List mit Subklassen einer Basisklasse - Zugriff auf Subklassen Eigenschafen und Methoden
Am im Forum: Grundlagen von C#

Eine Wrapper Klasse brauchst du nicht um abgeleitete Klassen in eine Liste zu stecken, weil das IEnumberable Interface für T Kovaraint ist.


using System;
using System.Collections.Generic;

public class Program
{
	public static void Main()
	{
		List<Abase> basetypelist = new List<Abase>();
		basetypelist.Add(new B());
		basetypelist.Add(new C());
		foreach (var a in basetypelist)
		{
			if (a.GetType().Equals(typeof (C)))
			{
				C c = (a as C);
				Console.WriteLine(a.GetType() + c.foo());
			}
			else
			{
				Console.WriteLine(a.GetType());
			}
		}
	}
}

public abstract class Abase
{
}

public class B : Abase
{
}

public class C : B
{
	public String foo()
	{
		return "foo";
	}
}

https://dotnetfiddle.net/aT98ZI

Thema: Zwei Dictionaries ineinander verschachteln sinnvoll?
Am im Forum: GUI: WPF und XAML

Zitat von C#bass
ich brauche eine etwas komplexere Datenstruktur. Macht es Sinn zwei Dictionaries ineinander zu verschachteln oder ist das eher unschön und unsauber?

Wofür verwendest du die Datenstrukturen? Wie sehen deine Daten aus die du speichern willst.
Werden viel Daten zur Laufzeit eingefügt, oder willst du mehr darin suchen?

Ob für deinen Fall zwei verschachtelte Dictionary sinnvoll sind lässt sich von deinem Ausgangspost nicht beantworten.

Thema: WPF Style global für mehrere Projekte möglich?
Am im Forum: GUI: WPF und XAML

Eine Assembly über eine Netzwerkresource laden halte ich für keine gute Idee.

Zitat
Nun stelle ich mir vor, meine Projekte landen auf verschiedenen Clients im Unternehmen. Nun möchte ich das Skin abändern und den Clients zur Verfügung stellen. So wie ich es bisher gemacht habe, müsste ich auf jedem Client die DLL wieder austauschen (viel Arbeit bei 120 PC-Arbeitsplätzen).

Deine Anwendung musst du so oder so auf die Arbeitsrechner deployen - eine Assembly mehr spielt da auch keine Rolle.

Willst du die Skins mit der Zeit ändern, kannst du das über ein Software update machen. Siehe auch hier updateSystem.NET

Thema: Asp.net MVC: Internationalisierung mittels i18n - Erfahrungswerte?
Am im Forum: Web-Technologien

Was spricht gegen die herkömmlichen Resource Files? Zumindest habe ich das immer so gehandhabt, dass zum Request die passende Culture gesetzt wird.

Die URL Localization scheinen ein nettes Feature zu sein.

Thema: PRISM MEF - Views und Viewmodels auto. exportieren und importieren
Am im Forum: Rund um die Programmierung

Hallo,

ich beschäftige mich seit kurzem mit MEF und PRISM.

Mein Ziel ist es, für die Exportierten Views auto. das ViewModel zu discovern und in die View zu injected.

Im BootStrapper für die Shell sieht das bei mir momentan so aus (MainWindow und MainWindowViewModel haben jeweils das Export Attribut gesetzt.):


        protected override void ConfigureAggregateCatalog()
        {
            RegistrationBuilder registrationBuilder = new RegistrationBuilder();
            //inject the mainwindowviewmodel into the datacontext property
            registrationBuilder.ForType<MainWindow>().ImportProperty<MainWindowViewModel>(p => p.DataContext);
            //add current assembly to catalog
            this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(Bootstrapper).Assembly, registrationBuilder));

        }

Die Applikationsmodule befinden sich in eigenen Assemblies und beinhalten die Views (UserControls) und ViewModels. Das hat zur Folge, dass ich im Projekt in dem sich die Shell befindet keine Projektreferenzen auf die Module habe und kein Import auf den DataContext setzen kann weil der Modul Typ nicht bekannt ist.

Im Prinzip möchte ich für alle Exportierte Views (in den Assemblie Modulen) folgendes ausführen

            registrationBuilder.ForType<View>().ImportProperty<ViewModel>(p => p.DataContext);

Meine Namenskonventionen sehen es so vor, dass die ViewModels sich aus "Viewnamen" + "ViewModel" zusammensetzen. Falls das in irgendeiner weise helfen sollte.

Wäre es möglich in einem eigenen erstellten Export Attribut als Parameter das zu importierende ViewModel anzugeben, dass dann die ImportProperty() Methode ausführt? Aber dazu fehlt mir ja dann wieder der CompositeContainer.

Wie kann ich das Problem lösen?

Thema: Logische Code Trennung mit asp.net mvc4 - Best Practice vorhanden?
Am im Forum: Web-Technologien

Hallo Abt,

deinem Blogeintrag nach zu urteilen, stellt die enge Verzahnung des Controllers und die Auswertung der Daten (die meiner Meinung nach ins ViewModel gehören) kein kosmetisches Problem dar.

Es scheint also nach dem ASP.NET MVC Prinzip in Ordnung zu sein, wenn hier keine strikte Logische Code Trennung statt findet?

Ich werde mal schauen in wie aufwendig es sein wird eine Klasse zu schreiben, die sich darum kümmert die HTTP-Get und HTTP-Post Request zu handeln und auf die entsprechenden ViewModels und deren Methoden weiter zu leiten.

Dann entfällt genau dieser unnötige "Zwischenschritt" in dem ein passender Controller erstellt werden muss der dann das jeweilige ViewModel instanziert und deren Methoden und Daten weiterleitet bzw. aufruft.

Sollte eigentlich nicht so schwer sein zu implementieren?

Thema: Logische Code Trennung mit asp.net mvc4 - Best Practice vorhanden?
Am im Forum: Web-Technologien

Hallo,

ich habe längere Zeit mit WPF gearbeitet (das ist jetzt auch wieder etwas her) und habe mich vor kurzem mit JavaEE JSF beschäftigt und schau mir nun ASP.NET MVC 4 genauer an.

In WPF Anwendungen konnte ich die Business Logik gut mit dem MVVM Pattern Trennen. Also alles was irgendwie zwischen View und dem Business war landete im ViewModel. So z.B. Validations Rules.

Dieses Prinzip konnte ich gut im JAVA EE JSF Projekt anwenden. Ich schreibe deshalb, dazu kurz was wie man das in JSF macht, damit man die unterschiede zwischen den beiden Technologien erkennt.

Man legt seine View, also die aufrufbare Page an und hat dann für jede dieser Pages ein ViewModel erstellt die für die View angepasst sind (natürlich könnte man die ViewModeles auch auf anderen Views wieder verwenden und es gibt auch Fälle wo es durchaus Sinn macht das zu tun).

Die Pages können dann durch den Viewnamen aufgerufen werden. Es gibt diverse RewriteRule Libaries in denen man die URLs zu den Seiten konfigurieren kann ohne in Berührung mit einem Controller zu kommen.

Ein Viewcode die auf eine Propertie oder Funktion zugreifen könnte in JSF z.B. so aussehen:


[...]
<customcontrol:dataTable id="dataTable" var="Element" value="#{ViewModel.ListeMitElementen}" scrollRows="60" scrollable="true" liveScroll="true" scrollHeight="400"
                                     filteredValue="#{ViewModel.FilterPropertie}">  
                            <p:column headerText="name">  
                                <h:outputText value="#{Element.name}" />  
                            </p:column>  
                            <p:column headerText="bearbeiten">  
                            <p:column headerText="lsöchen">  
                                <StandardLib:commandButton action="#{ViewModel.removeElement(Element)}" value="löschen" />
                            </p:column>  
                        </p:dataTable>
[...]

Daraus ergibt sich die Situation, dass man einen Controller im herkömmlichen Sinn wie in ASP.NET nicht mehr benötigt. Einzig allein um z.B. Encoding, Authentifizierung, ReWriteRules und der gleichen zu realisieren. Im Controller taucht kein Code auf der irgenwie etwas mit der View zu tun haben könnte. Genau das stört mich an ASP.NET MVC. Meiner Meinung sind die Views und die Controller viel zu eng mit einander verzahnt und zu viel von einander abhängig.

Auch gibt es, wenn ich mich nicht täusche, kein Best Practice um CustomControls zu realsieren. Man muss auf die ASP.NET Webforms zurückgreifen. Eine andere Methode wäre diese folgend zu realisieren http://www.codeproject.com/Articles/32356/Custom-controls-in-ASP-NET-MVC (macht man das noch so? Der Artikel ist etwas älter)

Validations sind in den Controller und auch die Methoden die die Formulare auswerten. Klar kann man im Controller die Formular Methode dem ViewModel übergeben, aber warum so umständlich?

Meine Frage ist, gibt es Frameworks die diese Problematik angehen und seht ihr das auch in etwa so wie ich?

Würde mich über interessante Beiträge dazu freuen.
SG

PS:Muss zwar mit asp.net mvc4 arbeiten aber würdet ihr dann trotzdem das "Pro ASP.NET MVC 5" buch empfehlen?

Thema: Implizierter Cast bei Listen (und anderen Datenstrukturen) nicht möglich? [==> Kovarianz-Problem]
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Aufgrund des obigen Beitrags von Palladin007 habe ich das Gefühl, dass mein Ansatz nicht so toll war.

Ich hatte mir folgendes Schichten-model vorgestellt:

1.) IDatenstruktur
2.) Datenstrukturklasse die grundlegende Methoden des Interfaces implementiert

3.) Business Model
4.) Erweiterte Datenstrukturklasse die auf Business Model angepasst ist.

Um die Datenstruktur flexibel zu halten, ist die unterste Schicht mit Generizitäten ausgestattet.
Umso höher man in der Schicht ist, umso weniger Generizitäten kann man setzen, da die obersten Schichten ein spezielles Problem abdecken.

Hier ein etwas aufwändigeres Beispiel, das die Problematik aber besser illustriert.

Die unterste Schicht:


    public interface IEdge<W, T, D> : IData<D>
        where W : IComparable<W>
        where T : IVertex<W, D>
    {
        W Weight { get; set; }
        T U { get; set; }
        T V { get; set; }
    }
W - Das Gewicht kann sich je nach Anwendungsfall unterscheiden (int, float, usw)
D - In diese Generizität kann eine x-beliebige Information gespeichert werden. (IData<D>)
T - Falls man eine erweiterte Datenstruktur zusammen bauen will.

 public interface IVertex<W,D> : IData<D>
        where W : IComparable<W>  
    {

        W Weight { get; set; }
        IEnumerable<IEdge<W, IVertex<W, D>, D>> Edges { get; set; }

Die Basisklasse der Datenstruktur sieht dann so aus:

  public class Edge<W, D> : IEdge<W, D>
        where W : IComparable<W>
    {

Diese Datenstruktur soll, in einem Projekt verwendet werden, das ein Schienennetz abbildet. Es gibt daher folgende Klassen "Rail" (Gleis - speichert Informationen zu Zustand, Länge, Materialtyp usw.) und "Connection" (Verbindet mehrere Gleise).

Daraus ergeben sich folgende erweiterte Datenstrukturen (ConnectionVertex und RailEdge)

    public class ConnectionVertex : Vertex<double, Connection>
    {
        public ConnectionVertex()
        {
            this._Edges = new ObservableCollection<RailEdge>(); 
        }
    }
    public class RailEdge : Edge<double, Rail>{}

Die Datenstruktur wurde Schicht für Schicht präzessiert. Algorithmen sind auf den Graphen weiterhin anwendbar, da diese sich auf IEdge und IVertex beziehen. Einzig allein das Kovarianz Problem scheint nicht lösbar zu sein.

Den aus den MSDN Link geht hervor, dass Typen mit dem out Modifizierer keinen getter oder setter haben dürfen. Somit kann ich diesen weder beim Gewicht noch anders wo hier verwenden.

Habe ich in diesem Fall die Constrains ebenfalls missbraucht wie herbivore in Datenstruktur flexibel gestalten meinte? Wie kann ich diese Grundsatz Idee am Besten realisieren? Komplett auf Generizitäten verzichten?

Thema: Implizierter Cast bei Listen (und anderen Datenstrukturen) nicht möglich? [==> Kovarianz-Problem]
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke, das hat mir schon weitergeholfen.

Thema: Implizierter Cast bei Listen (und anderen Datenstrukturen) nicht möglich? [==> Kovarianz-Problem]
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ich bin anscheinend in C# ein bisschen eingerostet was Generizitäten und Casts betrifft.

Für meine Klasse:

    public class Vertex<W,D> : IVertex<W,D>
        where W : IComparable<W>
    {

habe ich eine Extension geschrieben:

public static IEnumerable<IVertex<W, D>> Depth_First_Traversal<W, D>(this IVertex<W, D> s, IList<IVertex<W, D>> visited)
            where W : IComparable<W>
        {

Nun möchte ich diese Extension aufrufen was mir nur mit der Angabe vom Typ IVertex gelingt:


            Vertex<int, object> v1 = new Vertex<int, object>();
            v1.Depth_First_Traversal<int, object>(new List<IVertex<int, object>>());

Aber eigentlich sollte das doch auch so gehen:

            Vertex<int, object> v1 = new Vertex<int, object>();
            v1.Depth_First_Traversal<int, object>(new List<Vertex<int, object>>());
was aber in einem Fehler resultiert:
Fehler
Error 3 Argument 2: cannot convert from 'System.Collections.Generic.List<Get.DataStructure.Vertex<int,object>>' to 'System.Collections.Generic.IList<Get.DataStructure.IVertex<int,object>>'
Ich kann beim Parameter "IList visited" auch eine Liste übergeben (welche ja das Interface implementiert). Geht mein vorhaben bei Listen nicht? Falls ja, gibt es dafür ein Workaround?

Thema: Datenstruktur flexibel gestalten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ich möchte meine Datenstruktur möglichst flexibel gestalten und dabei ist mir etwas untergekommen von dem ich gerne eure Meinung wüsste.

Hier ein ganz simples Beispiel (es handelt sich um eine verkette Liste wie man sieht):

public interface IData<T>
    {
        T Value { get; set; }
    }
    public interface ISNode<T>
        where T : ISNode<T>
    {
        T Right { get; set; }
    }
    public interface INode<T,D> : IData<D>, ISNode<T>
        where T : INode<T,D>
    {
        
        T Left { get; set; }
    }

Eine verkettete Liste benötigt, je nach dem ob es eine einfache oder doppeltverkettete Liste ist, einen Zeiger auf das nächste Element. Um dies zu realisieren habe ich festgelegt, dass T vom Typ INode<T,D> sein muss. Jedoch wäre es auch genau so möglich, den Typ wie folgt zu definieren:

 public interface INode<D> : IData<D>
    {
        INode<D> Left { get; set; }
    }
Ich denke die erste generische Variante ist schöner, weil man verschiedene Typen angeben kann und der Cast Vorgang weg fällt. Bei viele generische Typen, kann es in der Handhabung schnell unübersichtlich werden. Eine Möglichkeit wäre dann den Typ fest zu legen:

 public class Node<D> : INode<Node<D>, D>
    {
        public Node()
            : base()
        {
        }
        public Node(D Data)
        {
            this.Value = Data;
        }
[...]
    }

Nun welche Methode gefällt euch besser? Was sind eurer Meinung die Vor- und Nachteile der zwei Varianten?

Hintergrund ist der, dass auf die oben beschriebenen Datenstrukturen Algorithmen per Extensions ausgeführt werden sollen und diese sollen dann auf möglichst vielen Klassen funktionieren die die Datenstruktur implementieren.

Thema: Daten werden im Reportviewer nicht dargestellt
Am im Forum: Datentechnologien

Ich glaube ich habe das Problem gefunden.

Ich habe von meinen 3 Klassen jeweils 3 Datasources. Wenn ich den Report mit View Code öffne sehe ich aber, dass nur ein DataSet1 vorhanden ist, welches auf ObjectDataSourceType Product verweist. Das heißt das Dataset für Delivery und Adress fehlt. Kann mir jemand sagen, wie ich die hinzufügen kann?

PS: Den Invoicemaker kann ich leider nicht öffnen, das es sich um ein Vb Projekt handelt. Den Projekttyp kann ich nicht nach installieren, da beim Setup ein Fehler auftritt.

[Edit] Ich mach das ganze jetzt mit WPF Printing bzw. FlowDocuments.

Thema: Daten werden im Reportviewer nicht dargestellt
Am im Forum: Datentechnologien

Hallo,

danke für die Antworten. Der Ausdruck einer Bestellung soll so aussehen:


Das Model zur Bestellung sieht so aus:

 public class Delivery
    {
        public Address Destination { get; set; }

        public IEnumerable<Product> Products { get; set; }
        
				[...]
    }
Und die Produkte die eine Bestllung enthaltet:

    public class Product
    {
        public string Name { get; set; }

        public int Weight { get; set; }
    }

Geht sowas mit den Reports? Es ist auch so, dass das ClientProgramm die Bestellungen über einen soap erhält und diese sofort ausdrucken muss. Die Vorschau sprich den Reportviewer brauch ich nicht zwingend.

Thema: Daten werden im Reportviewer nicht dargestellt
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: Model

Hallo,

ich muss Bestellungen ausdrucken. Ich hab mir gedacht, dass ist am einfachsten wenn ich dafür Reports verwende?

Eine Bestellung (Delivery) enthält eine Liste mit den Produkten.

Jedes mal wenn eine Bestellung rein kommt setze ich die Bestell-Daten im Reportviewer.

        protected void Deliveries_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            if (e.Action.Equals(NotifyCollectionChangedAction.Add))
            {
                
                //delete old reports
                if (ReportViewer.LocalReport.DataSources.Count.Equals(1))
                    ReportViewer.LocalReport.DataSources.RemoveAt(0);

                List<Delivery> lst = new List<Delivery>();
                lst.Add(e.NewItems.Cast<Delivery>().First<Delivery>());

                BindingSource thisIsABindingSource = new BindingSource();
                thisIsABindingSource.DataSource = lst;
                ReportDataSource rds = new ReportDataSource("Delivery", thisIsABindingSource);

                ReportViewer.ProcessingMode = ProcessingMode.Local;
                ReportViewer.LocalReport.EnableExternalImages = true;
                ReportViewer.LocalReport.ReportPath = Environment.CurrentDirectory + "\\Reports\\Report.rdlc";
                ReportViewer.LocalReport.DataSources.Add(rds);
                ReportViewer.RefreshReport();

            }
        }

Er verwendet die angegebene Reportvorlage, jedoch werden die Felder nicht mit den Werten vom übergebenen Model (Delivery) gesetzt. Hat jemand eine Idee woran das liegen könnte? Im Prinzip ist es ja die gleiche vorgehenseweise wie hier.

Ich habe im Internet gesehen, dass man das Model auch als DataTabel übergeben kann.

Jedoch weiß ich nicht wie ich das Model welches ja nochmal eine Liste enthält in eine DataTabel umwandeln kann. Soll ich in die DataTabel nochmal eine DataTabel übergeben welche alle Produkte enthält?

sg

Thema: Button Style ableiten - Propertys erweitern.
Am im Forum: GUI: WPF und XAML

Ich bin mir nicht sicher ob du das meinst.

Erstell als erstes deinen "base" Style.

<Style x:meineButtons ... />
<Style x:meineButtons1 basedon={StaticResource x:meineButtons} ... />
<Style x:meineButtons2 basedon={StaticResource x:meineButtons} ... />
<Style x:meineButtons3 basedon={StaticResource x:meineButtons} ... />

Bei den erweiterten meinButtons1-3 musst du dann noch das ControlTemplate setzen. In das ControlTemplate baust du deine Grafiken dann ein.

http://msdn.microsoft.com/de-de/library/ms753328%28v=vs.90%29.aspx

Thema: Datenbankanwendung mit welcher Technik ?
Am im Forum: Datentechnologien

Hallo,

ich würde das ADO.NET Entity Framework verwenden. So kannst du in wenigen Schritten eine Anwendung erstellen die über einen DB Zugriff verfügt. Du kannst dich also um die wesentliche Aufgabe kümmern. Dem anzeigen und bearbeiten der Daten.

Selber SQL Statments schreiben würde ich vermeiden. Generell sind „hardcoded“ Sachen in meinen Augen unnötiger Ballast. Außerdem steckt dann doch einige Arbeit dahinter, wenn man das alles selber machen will. Diese Zeit kannst du dir sparen.
Was ist wenn sich etwas in der DB ändert? Das Model mit dem Entity Framework hast du schnell neu generiert.

Solltest du trotzdem lieber selber mit eigenen SQL Statments arbeiten wollen, würde ich den Einsatz von Views und SPS empfehlen.

Thema: Freier Silverlight-Klon Moonlight eingestellt
Am im Forum: Szenenews

Hallo,

ich sehe das ähnlich wie ujr.

Wenn ich gerade vor 2 Jahren ein großes SL Projekt hatte, das vor kurzem fertiggestellt wurde, bringt das eine große Ungewissheit für den Kunden und den Entwickler mit sich.
Wie kann man ein ein solches Projekt weiter pflegen? Was ist wenn der Kunde in x Jahren noch das und das gerne hätte?

Ich habe eigentlich schon seit Erscheinen von SL es immer vermieden etwas damit zu machen, wegen eben der geringen Verbreitung und der Aussicht, dass das Projekt einmal eingestellt wird.

Dass es dazu so schnell kommt hätte ich aber nicht gedacht. Hier stiehlt sich MS aus der Verantwortung und lässt seine Kunden im Regen stehen.

Thema: Freier Silverlight-Klon Moonlight eingestellt
Am im Forum: Szenenews

Hallo,

Silverlight konnte sich im Internet nicht etablieren. Das Mono Entwicklungsteam stellt als Konsequenz das Monolight Projekt ein.

http://www.heise.de/newsticker/meldung/Freier-Silverlight-Klon-Moonlight-eingestellt-1586174.html

Wie wird sich diese Nachricht auf die .NET Welt auswirken? MS hat ja schon früher durchblicken lassen, dass SL nicht mehr weiterentwickelt wird.

Ich vermute, dass die Nachfrage von Silverlight Projekten zurückgehen wird. Ich bin auch der Meinung, dass .NET Client Webanwendungen zunehmend, aufgrund von HTML5, JS, AJAX, Processing usw. uninteressanter werden.

Thema: BackgroundWorker darf WPF-Form nicht verändern
Am im Forum: GUI: WPF und XAML

Hallo,

du könntest auch probieren das Fenster mit einer Animation langsam transparent zu machen.

Thema: [gelöst] DependencyProperty in einem UserControl und Binding
Am im Forum: GUI: WPF und XAML

Du hast den DataContext auf dein Control gesetzt. Die Property Score1 gibts in deinem Control nicht, weil diese im MVVM vorhanden ist.

Lass das setzen des DataContext im UserControl weg. Du willst ja als DataContext das MVVM haben.

Bzw. du hast im Prinzip das hier gemacht:

Zitat
Wir gehen davon aus, dass das UserControl genau den gleichen DataContext wie das Window besitzt. Sämtliche Standard UserControls, wie zum Beispiel TextBox'es, ListViews, erben den DataContext vom Übergeordneten Control. Weil aber das UserControl den DataContext auf sich selber setzt, haben wir einen anderen DataContext wie beim Window.<-- hier wird ja eigentlich das MVVM erwartet

Mach im UserControl das Binding Relativ dann müsste es gehen.
Zitat
Diese Problem kann man mithilfe der RelativeSource umgehen. Hätte das Binding wie folgt ausgeshene, wäre es egal, welchen DataContext das UserControl besitzt.

<TextBlock Text="{Binding Path=Score,RelativeSource=
{RelativeSource Mode=FindAncestor,AncestorType={x:Type local:UserControlName}}}"></TextBlock>

Dennoch gibt es Gegebenheit in dem ein Binding ohne RelativeSource berechtigt ist.
http://get-the-solution.net/2009/02/20/itemssource-zu-usercontrol-hinzufugen/

[EDIT] Sry, es muss natürlich Score heißen, weil du ja auf die DP des Control binden willst.[/Edit].