Laden...

Forenbeiträge von nilres Ingesamt 60 Beiträge

11.04.2014 - 10:57 Uhr

Ich würde auch erwarten das sich eine solche Addition immer gleich verhält (im Zweifelsfall müsste der Test immer fehlschlagen) daher kann ich verstehen, dass Abts Begründung hier nicht ausreicht. Es scheint hier ja nicht darum zu gehen ob der Test funktioniert oder nicht sondern warum er manchmal funktioniert und manchmal nicht.

Müssen es denn bestimmte 28 Tests sein die ablaufen? Muss ein bestimmter dabei sein? Muss einer dabei sein der auf deine Datenbank zugreift? Tritt das auf wenn die Tests in Summe eine bestimmte Zeit brauchen? Kannst du das in einem minimal Test-Projekt reproduzieren?

Schöne Grüße
Nils

15.10.2013 - 11:09 Uhr

Ist nicht evtl. der Pfad zu einer Datei schon eine eindeutige ID? Den könnte man dann auch noch hashen so das es es mehr aussieht wie eine typische "id"...

06.11.2012 - 17:46 Uhr

Naja wie in den anderen Beiträgen bereits vermerkt führt der Prozess da nach wie vor zu ner 404 Fehlermeldung... Das einzige was ich also an Information habe ist das was direkt auf der Seite steht...

06.11.2012 - 16:35 Uhr

Ja das habe ich durchaus schon betrachtet aber wenn ich z.B. jetzt aktuell das hier lese:
Lizenzierung der Office-Benutzeroberfläche für Entwickler

Dann steht da:

Eine Lizenz für die Verwendung geistigen Eigentums von Microsoft an der Office-Benutzeroberfläche ist erforderlich, wenn Softwareentwickler keine der von Microsoft bereitgestellten Implementierungen der Benutzeroberfläche mit einer separaten Lizenz (derzeit: Microsoft Windows 7-API-Implementierung oder Microsoft WPF-Implementierung in .NET Framework 4) verwenden.

Dann lese ich daraus, dass ich die Ribbon-Controls genau wie alle anderen WPF-Controls einsetzen kann. Also quasi ohne einschränkungen?
Das wurde so nirgendwo angesprochen?! Evtl. weil das erst kürzllich geändert wurde?!

Grüße
Nils

05.11.2012 - 22:26 Uhr

Hey,

ich bin am überlegen nun für meine zukunünfigten Programme auch auf ein Ribbon-Basiertes-System umzusteigen. Was mich allerdings abhält ist die unklare lage was für regeln man sich damit unterwirft. Früher gab es ganz klar die Regel das wenn man Ribbon einsetzen möchte man sich an alle Regeln halten muss die hier aufgezeigt sind:Ribbons

Wenn ich jetzt Ribbon for WPF runterlade ist es mir quasi unmöglich überhaupt eine Lizensdatei dafür zu finden die mir sagt was ich darf und was nicht und ich bin jetzt seit ner Stunde im MSDN am suchen finde auch keine klare Antwort.
Also wollte ich fragen ob jemand von euch weiß ob die verlinkten Regeln immer noch so gelten?

Schöne Grüße
Nils

02.07.2012 - 08:42 Uhr

Du könntest auch (was sehr aufwendig ist) den IL-Code analysieren um die Zahl der Operationen zu ermitteln. Nur musst du dann aufpassen was mit Springbefehlen (Schleifen, goto, Rekursionen) ist. Du könntest also die nicht Sprungbefehle im IL-Code zählen und anschließend mit der Zahl deiner Schleifendurchläufe multiplizieren. Zum zählen bzw. analysieren der IL-Befehle würde ich mono.cecil empfehlen (gibts auch per nuget).

Schöne Grüße
Nils

28.07.2011 - 17:38 Uhr

Eine andere Möglichkeit wäre ein Delegate zu verwenden.

Strategie-Pattern dürfte aber sauberer sein. Ich wollte es nur erwähnt haben.

Grüße
Nils

12.05.2011 - 10:13 Uhr

Also bei mir funktioniert es und macht schon nen ganz guten Eindruck. Leider ist es noch etwas träge aber das ist wohl in diesem entwicklungsstadium nicht wirklich verwunderlich.
Das Tool ist meiner meinung nach auf einem guten Weg...

Grüße
Nils

03.05.2011 - 10:50 Uhr

Du könntest im Basis-Interface eine Funktion anbieten die als Rückgabewert ein Dictionary<Type, Boolean> hat.

In etwa so:


    public interface IBaseInterface {
        Dictionary<Type, Boolean> WhichInterfacesAreValid();
    }

    public interface IInterface1 : IBaseInterface {
        void SomeStuff();

        Boolean IsInterfaceImplementationValid();
    }

    public interface IInterface2 : IBaseInterface {
        void SomeOtherStuff();

        Boolean IsInterfaceImplementationValid();
    }

    public class Example : IInterface1, IInterface2 {
        public void SomeStuff() {
            throw new NotImplementedException();
        }

        public void SomeOtherStuff() {
            throw new NotImplementedException();
        }

        Boolean IInterface1.IsInterfaceImplementationValid() {
            return true;
        }

        Boolean IInterface2.IsInterfaceImplementationValid() {
            return true;
        }

        public Dictionary<Type, Boolean> WhichInterfacesAreValid() {
            var validationValues = new Dictionary<Type, Boolean>();

            validationValues.Add(typeof(IInterface1), ((IInterface1)this).IsInterfaceImplementationValid());
            validationValues.Add(typeof(IInterface2), ((IInterface2)this).IsInterfaceImplementationValid());

            return validationValues;
        }

    }

Das würde meiner Meinung nach Funktionieren, ob du nicht vielleicht doch eher dein Design überdenken musst kann ich nicht sagen und musst du wissen...

Grüße
Nils

12.04.2011 - 16:33 Uhr

Ich finde das ist nicht so viel komplizierter und trennt diese beiden Sachen sehr schön. Wenn man die UI vom Emulator komplett trennt ist man gezwungen eine ordentliche Schnittstelle zu definieren. Damit ist es später möglich z.B. automatisierte Tests mit Hilfe des Emulators durchzuführen. Es ist auch einfacher die Benutzeroberfläche zu tauschen.

All dies ist auch möglich wenn man direkt oder per Wrapper auf den Emulator zugreift.

Außerdem spart man sich den Managed C++ Wrapper (ich mag Managed C++ nicht).

Ich habe meinen Satz aber extra mit "Ich denke auch..." (wobei ich mehr etwas in die Richtung "ich würde es so: ... angehen" ausdrücken wollte).

Schöne Grüße
Nils

12.04.2011 - 15:42 Uhr

Ich denke auch das du den eigentlichen Emulator in C/C++ schreiben solltest. Wenn du möchtest kannst du dann die Ein-/Ausgabe in C# bauen und mittels IPC mit dem Emulator kommunizieren lassen.

Grüße

16.03.2011 - 14:12 Uhr

Danke euch allen für die Informationen. Der Hinweis von MrSparkle hat mir geholfen. Daran hatte ich in diesem Moment nicht gedacht.

Damit ist das geklärt.

Schöne Grüße
Nils

15.03.2011 - 16:05 Uhr

Ich halte die Lösung für kleine eingebaute Skripte einen Parser zu schreiben für Optimal. Was wäre denn besser?

Grüße
Nils

15.03.2011 - 10:33 Uhr

Hmm ich lege eine neue Solution an: Name: TestSolution mit einem neuen Projekt TestAppliction. Die Klassen die ich da jetzt erstelle liegen nur im Namespace TestApplication?!

15.03.2011 - 10:06 Uhr

Ich hätte gerne das Visual Studio den Solutionnamen mit in den Standard namespace Namen übernimmt. Kann man das irgendwo einstellen?

Grüße
Nils

09.02.2011 - 16:12 Uhr

Es ist, meiner Meinung nach, auch viel sinnvoller die Datei auf die Festplatte abzulegen und in der Datenbank nur den Pfad zu selbiger. Ich bin der Meinung Datenbanken sind nicht dazu geschaffen Bilddateien zu speichern.

Grüße
Nils

21.01.2011 - 08:40 Uhr

Guten Morgen herbivore,

ich könnte mir vorstellen das es zu debugging Zwecken ganz nützlich sein kann. Ich muss zugeben das auch noch nie gebraucht zu haben, dennoch könnte ich mir vorstellen das bei der Suche nach ganz "komischen" Fehlern die Information ganz nützlich sein kann.

Grüße
Nils

16.01.2011 - 22:00 Uhr

Hallo Leute,

ich möchte eine LineGeometry am Mauszeiger ausrichten. Dafür höre ich auf das MouseMove-Event und setze dann den EndPoint auf die Mausposition. Damit sitzt das Ziel leider unterhalb des Mauszeigers, ich bräuchte es in der Mitte. Kann man irgendwie die Größe des Mauszeigers ermitteln?

Grüße
Nils

30.11.2010 - 08:29 Uhr

Danke ich denke so werde ich eine Lösung finden...

29.11.2010 - 16:28 Uhr

Vielleicht habe ich eher meine eigentliche Frage in zu viel drum herum versteckt. Ich versuche es daher mal einfacher:

Ich habe eine Funktion void DoWork(IParameter p1, IParameter p2, IParameter p3).
Das Interface IParameter definiert nur ein paar Basis Funktionalitäten. Die Implementierung eines solchen Parameters kann ein sehr umfangreiches Objekt sein welches wiederum eigene komplexe Typen beinhaltet. Nehmen wir mal an Klasse A Implementiert das Interface IParameter. Und beinhaltet jetzt ein Objekt der Klasse Foo diese Klasse Foo beinhaltet ein Objekt der Klasse Bar und diese Klasse Bar beinhaltet ein Property mit dem Namen Value vom Type Int32.
Die Funktion DoWork soll nun mit den Werten aus dem Property Int32 arbeiten. Hat aber keine Ahnung über die ganzen anderen Typen die es da so gibt (dynamisch als Plugin dazu geladen, etc. pp.) Jetzt soll man der Klasse in der die Funktion DoWork enthalten eine Konfiguration mitgeben die den Weg zu diesem Property beschreibt. Und genau da hakt es ein wenig. Wie beschreibt man so einen Weg?

29.11.2010 - 15:30 Uhr

Hallo Leute,

für ein etwas spezielles Projekt benötige ich folgende Funktionalität: Ich möchte zur Laufzeit den Weg zu einem Property/Wert festlegen. Es gibt dabei drei mögliche Ursprünge: 1. Es ist ein konstanter Wert (z.B. 25.0f) 2. Er ist in einem Übergabeparameter (das sind jeweils drei Verschiede) oder 3. in einer Statischen-Klasse. Bei den beiden letzten Lösungen gibt es das Problem dass man da dann einen Pfad festlegen muss an dessen Ende ein Property steht (z.B. Property ist in ÜbergabeparameterA->ObjectPropertyA->ObjectPropertyD->TargetProperty). Ich bin etwas überfragt wie ich diesen Abbilden soll. Und hoffe einer von euch hat da eine gute Idee.

Sinn ist das man in einer Applikation einen Ablauf festlegen kann und diese zweite Applikation wertet dies dann zur Auswertung aus. Geht so in die Richtung grafisch Programme anfertigen zu können (nur damit ihr eine Vorstellung habt, ist etwas speziell).

Danke schon mal!

Grüße
Nils

21.11.2010 - 20:40 Uhr

Ich habe das Problem gerade noch etwas weiter untersucht. Ich gehe jetzt erst mal nur noch von Strings aus. D.h. ich habe mein Value-Property jetzt zu einem String-Property gemacht. Leider funktioniert folgendes trotzdem nicht:


<DataGridTemplateColumn.CellEditingTemplate>
	<DataTemplate>
		<DataTemplate.Resources>
			<DataTemplate DataType="{x:Type System:String}">
				<TextBox Text="{Binding Path=., Mode=TwoWay}" />
			</DataTemplate>
		</DataTemplate.Resources>
		<ContentPresenter Content="{Binding Path=Value, Mode=TwoWay}" />
	</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>

Ich brauche das auf jeden Fall später in in Data-Templates.

Wenn ich anstatt des ContentPresenters bereits eine TextBox einbaue klappt das alles ganz wunderbar. Wieso klappt ein Two-Way-Binding nicht über einen ContenPresenter?

Grüße
Nils

21.11.2010 - 12:25 Uhr

folgendes Problem: Ich habe Daten nach dem Schema (vereinfacht Dargestellt (kein INotifyPropertyChanged...)):


public class DummyData {
	public String Name {
		set;
		get;
	}
	public Object Value {
		set;
		get;
	}
}

Diese befinden sich in einer ObservableCollection im ViewModel. Daran binde ich nun ein DataGrid:


<DataGridItemsSource="{Binding Path=DummyDatas}" AutoGenerateColumns="False">

Die Darstellung funktioniert inzwischen sehr gut. Leider gibt es beim Bearbeiten einige Probleme. Mein Value Objekt kann ein String oder ein int sein. Dafür habe ich folgendes CellEditingTemplate:


<DataGridTemplateColumn.CellEditingTemplate>
	<DataTemplate>
		<DataTemplate.Resources>
			<DataTemplate DataType="{x:Type System:String}">
				<TextBox Text="{Binding Path=., Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
			</DataTemplate>
			<DataTemplate DataType="{x:Type System:Int32}">
				<TextBox Text="{Binding Path=., Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
			</DataTemplate>
		</DataTemplate.Resources>
		<ContentPresenter Content="{Binding Path=Value, Mode=TwoWay}" />
	</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>

Ich kann die Daten in der TextBox bearbeiten nur wenn dann mit Return bestätige oder der Fokus verloren geht werden die Daten nicht übernommen. Warum? und wie kann ich das ändern?

Wenn man danach sucht findet man einige mit ähnlichen Problemen nur gabs da bisher für mich keine Lösung. Ich verstehe auch nicht wieso mein Code so nicht funktioniert.

Grüße
Nils

20.11.2010 - 16:09 Uhr

Ah vielen Dank ich denke damit geht das wirklich gut.

Grüße
Nils

20.11.2010 - 15:42 Uhr

Hallo Leute,

folgendes Problem: Ich möchte Daten nach dem Schema (vereinfacht Dargestellt (kein INotifyPropertyChanged...)):


public class DummyData {
	public String Name {
		set;
		get;
	}
	public Object Value {
		set;
		get;
	}
}

Diese befinden sich in einer ObservableCollection im ViewModel. Daran binde ich nun mein DataGrid:


<DataGridItemsSource="{Binding Path=DummyDatas}" AutoGenerateColumns="False">

Den namen Darszustellen war natürlich ganz einfach:


    <DataGrid.Columns>
        <DataGridTextColumn Header="Name" Binding="{Binding Name}" />

Problem ist jetzt das Value-Objekt. Dieses kann entweder ein String, eine Zahl oder oder ein von mir definiertes Objekt. Der String soll in einem einfachen TextBlock dargestellt werden. Die Zahl hätte ich gerne als TextBlock und einem Button (Zusammen in einem StackPanel oder ähnliches) und meine eigene Klasse eben so als TextBlock plus zusätzlichem Button.

Dafür brauche ich bestimmt DataGridTemplateColumn-Element nur irgendwie komme ich mit meinen DataTemplates da nicht weiter. So sieht das momentan aus:


<DataGridTemplateColumn Header="Value">
	<DataGridTemplateColumn.CellTemplate>
		<DataTemplate>
			<DataTemplate.Resources>
				<DataTemplate DataType="{x:Type WpfApplication2:Dummy}">
					<StackPanel>
						<TextBlock Text="{Binding Value}" />
						<Button />
					</StackPanel>
				</DataTemplate>
				<DataTemplate DataType="{x:Type System:Int32}">
					<StackPanel>
						<TextBlock Text="{Binding Value}" />
						<Button />
					</StackPanel>
				</DataTemplate>
				<DataTemplate DataType="{x:Type System:String}">
					<TextBlock Text="{Binding Value}" />
				</DataTemplate>
			</DataTemplate.Resources>
			<ContentPresenter />
		</DataTemplate>
	</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

Jetzt weiß ich einfach nicht wie ich das mit einem Control enstprechend darstellen kann...

Ich hoffe jemand kann mir helfen.

Grüße
Nils

16.11.2010 - 08:37 Uhr

Das System ist schon ziemlich genial. Folgendes ist damit super möglich und wird öfters praktiziert: Server ist ein Linux/Solairs/BSD ohne Grafische-Oberfläche (X-Server). Jetzt möchte ich als Admin debugging mit Wireshark betreiben (keine Diskussionen über die Rechtsgrundlage, ich sitze im Ausland). Ich kann jetzt an meinem Arbeitsplatz sitzen und starte auf dem Server (z.B. per SSH) Wireshark und sehe das Fenster bequem auf meinem Desktop und kann es bedienen, debugge aber den Netzwerktraffic auf dem Server 😉 Super Sache 😃

Grüße
Nils

12.11.2010 - 14:05 Uhr

Ja natürlich; Diesen Punkten muss man sich bewusst sein. Eine temporäre Datei anzulegen kann aber auch massive Probleme (Performance) mit sich bringen, je nach dem was man tut.

Grüße
Nils

12.11.2010 - 13:05 Uhr

Du leitest einfach von der Klasse ab. Baust dann für die Überladung die du haben möchtest eine neue Funktion und baust darin die andere Funktion nach. Da kann es dann ggf. nötig sein per reflection private mehtoden aufzurufen. Am besten im Reflector nachgucken was die Funktion macht.

Grüße
Nils

23.10.2010 - 17:50 Uhr

Sie ist gegeben durch die Menge der Elemente im enum. Sprich über die Enum-Klasse würde man da ran kommen. Ich werde das am ende für mindestens 2 Sachen brauchen. Mit unterschiedlich vielen Einträgen.

23.10.2010 - 17:47 Uhr

Ja ich werde noch mal was versuchen mir ist da gerade so eine Idee gekommen.

23.10.2010 - 17:19 Uhr

Genau - Problem dabei ist wie gesagt wie ich das mit dem selektieren der MenuItems hinebekomme.

23.10.2010 - 16:56 Uhr

Das ist nur die statische Deklaration... du kennst dich damit nicht aus oder?

22.10.2010 - 16:24 Uhr

Hallo Leute,

ich habe folgende Situation. Ich entwickle ein eigenes kleines UserControl. In diesem UserControl gibt es folgendes DependencyProperty:


public static readonly DependencyProperty FillModeProperty = DependencyProperty.Register("FillMode", typeof(FillMode), typeof(MyControl), new PropertyMetadata(FillMode.Solid, FillModeChangedCallback, null), null);

FillMode ist ein Enum. Jetzt möchte ich über ein Menü diesen Wert verändern. Dazu habe ich bereits folgendes hin bekommen:


            <Menu.Resources>
                <ObjectDataProvider x:Key="FillModes" MethodName="GetValues" ObjectType="{x:Type System:Enum}">
                    <ObjectDataProvider.MethodParameters>
                        <x:Type TypeName="Graphics:FillMode"/>
                    </ObjectDataProvider.MethodParameters>
                </ObjectDataProvider>
            </Menu.Resources>

                <MenuItem Header="FillMode" DataContext="{Binding FillModeProperty}" ItemsSource="{Binding Source={StaticResource FillModes}}" >
                    <MenuItem.ItemContainerStyle>
                        <Style>
                            <Setter Property="MenuItem.IsCheckable" Value="True" />
                            <Setter Property="MenuItem.Header" Value="{Binding}" />
                        </Style>
                    </MenuItem.ItemContainerStyle>
                </MenuItem>

Das klappt gut. Angezeigt wird alles richtig. Was ich nicht hinkriege und wo ich hoffe das ihr Tipps dazu habt ist folgendes: Ich möchte das man jetzt ein MenuItem anklicken kann dann das DependencyProperty mit dem Wert gefüllt wird. Die IsChecked-Eigenschaft von dem Feld auf true gesetzt wird und die IsChecked-Eigenschaft aller anderen MenuItems auf false gesetzt wird.

Wie geht so was?

Grüße
Nils

09.10.2010 - 16:44 Uhr

Ich habe mir jetzt noch eine "umgedrehte" struktur gebaut, war eigentlich dank MVVM recht einfach.

=> Gelöst

08.10.2010 - 13:25 Uhr

Hallo Leute ich habe ungefähr folgende Struktur:


<TreeView x:Name="SceneTree" DataContext="{Binding}"  ItemsSource="{Binding ObjectTree}">
                    <TreeView.Resources>
                        <HierarchicalDataTemplate DataType="{x:Type EditorTest:EditorObject}" ItemsSource="{Binding Children}">
                            <StackPanel Orientation="Horizontal" Name="HierarchicalDataTemplateStackPanel" AllowDrop="True">
                                <StackPanel.ContextMenu>
                                    <ContextMenu>
                                        <MenuItem Header="Remove" Command="{Binding ElementName=SceneTree, Path=DataContext.RemoveObjectCommand}" />
                                    </ContextMenu>
                                </StackPanel.ContextMenu>
                                <TextBlock Text="{Binding DisplayName}" />
                            </StackPanel>
                        </HierarchicalDataTemplate>
                    </TreeView.Resources>
                </TreeView>

Wie ihr sehr möchte ich in meinem MenuItem (ContextMenu) auf ein Commando innerhalb des DataContext des TreeView zugreifen. Das funktioniert leider nicht. Weiß jemand woran das liegen kann? Mache ich das überhaupt richtig?

Liebe Grüße
Nils

07.10.2010 - 16:20 Uhr

Ja MVVM ist schon klar. Machbar wäre das und enstpräche halt meiner Lösung: Eine zweite Struktur aufzubauen. Ich fürchte auch das es darauf hinauslaufen wird...

07.10.2010 - 15:23 Uhr

Hallo Leute,

ich bin nicht der große Experte in WPF, hätte da aber einfach mal eine Frage wie ihr folgendes Umsetzen würdet.

Ich habe eine hierarchische Objekt-Struktur, in der jedes Objekt aber nur seinen "Parent" kennt, nicht aber seine Kinder. Das ist bei dieser Struktur so sehr sinnvoll, denn ansich interessiert ein Objekt sich nicht für seine Kinder.

Jetzt würde das gerne in einem TreeView darstellen. Mit dem WPF-Tree-View kenn ich mich an sich aus und kenne keine Möglichkeit wie ich den dazu bringe mir diese Struktur abzubilden. Die Frage ist jetzt ob ich eher eine zweite Struktur aufbaue, in der ich die Zuordnung von Eltern zu Kind speicher oder ein eigenes Tree-View-Control schreibe das mit meiner Umgebung klar kommt.

Es scheint mir sauberer zu sein ein eigenes Tree-View-Control zu schreiben, da würde man dann eine Menge speicher spaaren, wenn man die struktur nicht zwei mal abbilden muss. Ich kann aber nicht einschätzen wie Aufwendig das ist.

Am besten wäre es natürlich wenn mir jemand erklären könnte dass so was auch mit dem normalen WPF-Tree-Control möglich ist, ohne eine weitere Struktur parallel zu der bestehenden aufbauen zu müssen.

Besten Dank schon mal

Grüße
Nils

14.09.2010 - 13:10 Uhr

Und wenn er für einen Router/Firewall-Hersteller IPSec implementieren soll?

Also bleibt aber dabei: Es ist nicht ohne. Dein größtes Problem ist (aber ich denke das weißt du), dass IPSec auf Layer 3 (OSI-Modell) arbeitet und dieser Layer befindet sich im Betriebsystem (Was willst du benutzen? Linux? Windows? Irgend ein Unix?).

Die einzigen brauchbaren Beschreibungen dürften aber die RFCs sein. Wenn dir die zu schwer sind, wirst du ziemlich viel zu kämpfen haben.

IPSec kann man nicht mal eben in einem Howto beschreiben.

Grüße
Nils

08.09.2010 - 11:19 Uhr

Vielen Dank für diese ausführlichen Informationen.

08.09.2010 - 10:18 Uhr

Hallo Leute,

dass ist jetzt evtl. eine ganz einfache Frage, aber ich bin mir einfach nicht sicher wie es richtig gemacht wird.

Ich implemtiere gearde meine erste GUI-Anwendung. Also Pattern habe ich mich für MVVM entschieden.
Es geht momentan um eine Projekt-Struktur die in einem TreeView dargestellt werden soll.

Data: ProjectFile:


public IList<IProjectComponent> Childs {
    protected set;
    get;
}

ViewModel: ProjectFileViewModel


private readonly ObservableCollection<ProjectComponentViewModel> _children;
public ObservableCollection<ProjectComponentViewModel> Children {
    get {
        return _children;
    }
} 

ProjectComponentViewModel ist dann das ViewModel für alle IProjectComponents.

So wenn ich jetzt neue IProjectComponents anlege/lösche muss ich diese ja dem ProjectFile hinzufügen. Mach ich das so dass ich der ViewModel-Schicht das ganze hinzufüge. Gleichzeitig höre ich dann, in der ViewModel-Schicht, auf das Event der ObservableCollection und füge es auch dem ProjectFile hinzu?

Grüße
Nils

30.07.2010 - 12:29 Uhr

Ja das ist komplizierter aber so muss man nicht erst warten bis das Ding 10.000 mal benutzt wurde.

30.07.2010 - 08:39 Uhr

Was ich bei so einem System sehr interessant fände, wäre wenn es sich initial aus einer bereits bestehenden Wissensquelle (z.B. Wikipedia), selbstständig Wissen über Personen aneignet.

29.07.2010 - 10:41 Uhr

Ok das könnte wirklich funktionieren - Danke.

29.07.2010 - 09:07 Uhr

Hallo ihr beiden.
Ich dachte es würde durch den ersten Post deutlich werden. Ich verwende das Array um Indices für ein anderes Array zu finden.

Beispiel Indices ist mein Array was ich gerne etwas generalisiert haben möchte:


clas A {
    String Data[]; // Irgendwie mit ganz tollen sachen befüllt;
    void Calculate(Int32[] indices) {
         Verarbeite(Data[indices[25]]);
    }
    void Calculate(Int16[] indices) {
         Verarbeite(Data[indices[25]]);
    }
}


Das können je nachdem 16bit oder 32bit indices sein (das lässt sich nicht ändern, ist so). Und deswegen kommt auch eine einfache IList<T> Mehtode nicht in Frage, denn auch da bekomme ich dann:

Eine implizite Konvertierung vom Typ "T" in "int" ist nicht möglich.

Ist jetzt deutlich geworden was ich möchte?

Ich denke inzwischen übrigens auch, dass es nicht möglich ist.

Grüße
Nils

28.07.2010 - 08:34 Uhr

Erstmal danke für den Hinweis.

Leider gibt es bei ICollection<T> ja keine Möglichkeit auf die Elemente zuzugreifen, oder? Indexer fehlt und ich sehe auch keine andere Mehtode an die Daten ran zu kommen ohne die Collection komplett per Enumerator durch zu laufen.

Grüße
Nils

28.07.2010 - 08:19 Uhr

Hallo Leute,

erstmal etwas Code (sagt hier glaube ich mehr als tausend Worte):


public void Calculate(Int32[] indices) {
   // Mache ganz viel nach Schema:
   Daten[Indices[25]];
}

public void Calculate(Int16[] indices) {
    var indices32 = new Int32[indices.Length];
    indices.CopyTo(indices32, 0);
    Calculate(indices32);
}

Wie ihr seht ist mein Problem, dass ich als Eingabe entweder Int16- oder Int32-Arrays bekomme und diese dann gleich verarbeite. Ist es möglich das geschickter zu lösen? Kann man evtl. auch das kopieren noch besser lösen oder habe ich da bereits die optimale Lösung? Ich finde sie ziemlich hässlich.

Grüße
Nils

22.07.2010 - 16:51 Uhr

Ich habe ihn gerade nach Linus Trovalds befragt. Er hats hinbekommen aber eine Frage fand ich da echt toll:

Edit: Jetzt im Anhang.

Grüße
Nils

08.07.2010 - 15:54 Uhr

Den Text grau zu Färben ist in diesem Forum so üblich, um zu Signalisieren, dass man etwas offtopic sagt. So kann es von einem geneigten leser einfach überlesen werden. Und das einzige was er sagen wollte ist das er der Meinung ist, die ich teile, dass du dich überschätzt und die Aufgabe unterschätzt. Böse Kombination.

07.07.2010 - 12:49 Uhr

Weil das Aufwendig ist und der GC das mindestens genau so gut macht?

07.07.2010 - 11:36 Uhr

Wenn du so Argumentiert hast wäre ich auch gegen Dispose. An der Stelle missbrauchst du es. Da kann man schon sagen "ne wir haben nichts unmanged, das brauchen wir nicht".

Wenn du ein Objekt nicht mehr brauchst sorge dafür das du keine Refernezen mehr darauf hast und sei glücklich.

Grüße
Nils