Laden...
Avatar #avatar-2980.jpg
Taladan myCSharp.de - Member
Individualprogrammierer sowie Student Osnabrück Dabei seit 06.04.2008 582 Beiträge
Benutzerbeschreibung

Forenbeiträge von Taladan Ingesamt 582 Beiträge

02.11.2015 - 21:27 Uhr

Hallo,

nein, wie ich jetzt fest gestellt habe, stellt Azure ein TFS Projekt im Visual Studio Online. Diese sind dann aber auch (irgendwie) mit Azure verknüpft und können von dort erreicht werden.

Deine Links schaue ich mir mal bei Gelegenheit an.

01.11.2015 - 14:46 Uhr

Hallo,

ich habe ein neues Projekt, welches ich gerne versuchshalber mal richtig über ein Taskboard Managen möchte. Eigentlich brauche ich das für mich selbst nicht, da ich bei eigenen Projekten immer gute Übersicht habe, aber könnte ja auch Vorteile haben, daher mal der Versuch. Ich habe mir dafür über Azure ein Teamprojekt erstellt und die ersten Workitems erstellt. Nur finde ich eine Funktion nicht, vielleicht weil sie nicht existiert. Ist es richtig, das man nur "Titelitems" und dazu gehörige Unteritems in erster Generation erstellen kann. Ich hätte gerne Unteritems zu Unteritems.

Z.B. folgendes Konstrukt. Wenn ich zu "Login erstellen" den Task "Automatisch einloggen" erzeuge, kann ich aber darunter kein Unteritem "Per Facebook" erstellen, da "Automatisch einloggen" selbst schon ein Unteritem von "Login erstellen" ist.

Login erstellen

  • Manuell
    -- Halbautomatische Möglichkeiten erforschen
  • Automatisch
    -- per Facebook
    -- per Google
    -- per WasAuchImmer

Übersehe ich was oder muss ich irgendwo noch etwas einstellen?

Lg Marco

29.10.2015 - 16:37 Uhr

Hat jemand von euch denn schon Erfahrungen mit Azure gesammelt. Die Datenbank scheint ja recht einfach in Programme einzubinden zu sein.

27.10.2015 - 12:10 Uhr

Hallo,

ich bin am überlegen, ob ich mir nicht einen eigenen Server in die Wohnung stelle. Darauf soll erstmal nur eine SQL Datenbank (für eigene Entwicklungen) und ggf. später noch die eine oder andere Homepage laufen. Also sollte der natürlich auch vom Internet aus erreichbar sein. Da ich mich mit Servern und dazugehörige Hardware noch nie beschäftigt habe, wollte ich mal fragen, wie umfangreich das ist und wollte mir von euch mal erste Infos und Ideen erbitten und worauf ich ggf. noch achten sollte.

Lg Marco

16.09.2015 - 12:50 Uhr

Kann es sein, das die freie Version (das die Frei ist, habe ich gar nicht gesehen) nur für WinForms ist? Klar kann man Winforms-Steuerelemente einbinden, aber Bindings und Co sind wesentlich schwieriger umzusetzen.

15.09.2015 - 14:30 Uhr

Hallo,

@Parso: ja ich werde bereits die RichTextBox. Aber dazu gehört ja wesentlich mehr als "nur" Texte zu formatieren. Angefangen bei Seitenbreite und Höhe, Imageeinpflege und speicherung, Exporte und Inporte. Und natürlich auch die Formatierung.

@Taipai88: Hast du schon Erfahrungen damit machen können? Ich bin schon auf die Seite gestoßen, meide aber grundsätzlich Unternehmen, die keine Preise ausschreiben, gerade wenn sie nicht mal einen Basispreis veröffentlichen. Denen unterstelle ich grundsätzlich eine Unfairnis in der Preisgestaltung.

15.09.2015 - 12:20 Uhr

Hallo,

ich bastle schon seit längeren an einer eigenen RichTextBox rum, mit sichtbaren aber dennoch mäßigen Erfolg. Daher wollte ich mich mal in der Welt nach fertigen Modulen umschauen.

Hat da wer gute Erfahrungen gemacht. Binding des Dokuments sollte auf jeden fall Möglich sein. Schön wäre es auch, wenn ich mehrere Dokumente zusammen mit meinen Objekt (was mindestens zwei RichtTexte beinhaltet), in eine Datei speichern könnte.

Hat jemand Vorschläge? Auch kostenpflichtige sind nicht unbedingt ausgeschlossen, da ich aber nur Student bin und das ein Hobbyprojekt ohne Einnahmen ist, möchte ich nicht allzu viel dafür ausgeben.

Lg Marco

17.11.2014 - 20:27 Uhr

Hi,

also zu den Events. Nein bin ich nicht, aber ich weiß auch nicht, wie ich es anders machen könnte. Habe nichts weiteres dazu gefunden. Bei normalen Eigenschaften hätte ich das einfach in den Setter mit rein geschrieben.

Und ein globales ViewModel will ich eben gerade nicht. Aber es scheint genau das zu sein. Es wird eines instanziert im ViewModelLocator und eben jenes verwendet. Es liegt an dieser GetInstance Funktion des ServiceLocator.

 public MainWindowViewModel DatabaseViewModel
        {
            get
            {
                // Geändert
                return new MainWindowViewModel();
                // Ursache
                //return ServiceLocator.Current.GetInstance<MainWindowViewModel>();
            }
        };
17.11.2014 - 19:09 Uhr

@ErfinderDesRades : Ich habe deinen Ansatz mit der Event(feuerung) verfolgt. Bin mir aber ziemlich sicher, das es nicht gewollt 2x auslößt. Denn die entsprechende Property gibt beim zweiten Aufruf wieder den ersten wert zurück.

 DBConnectionView view1 = new DBConnectionView();
                if (view1.ShowDialog() == true)
                {
                    
                }
                view1 = null;

                DBConnectionView view2 = new DBConnectionView();
                view2.ShowDialog();

Die Eigenschaft ReturnValue von DBConnectionView sollte beim zweiten Aufruf wieder den Standard-Wert haben, hat er aber nicht. Denn er gibt (wieder) den wert vom view1 zurück. Daher vermute ich den Fehler irgendwo im ViewModel. Da das Viewmodel keine eigene Instanz erzeugt, je Fenster.

17.11.2014 - 18:26 Uhr

Oky. Dann hier der Code.


public class DialogWindow : Window 
    {
        public DialogWindow() : base() 
        {
            this.DialogValue = null;
            this.DialogValueChanged += DialogWindow_DialogValueChanged;
        }

        
        public object DialogValue
        {
            get { return (object)GetValue(DialogValueProperty); }
            set { SetValue(DialogValueProperty, value); }
        }

        // Using a DependencyProperty as the backing store for DialogValue.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty DialogValueProperty =
            DependencyProperty.Register("DialogValue", typeof(object), typeof(DialogWindow), new PropertyMetadata(null, new PropertyChangedCallback(OnDialogValueChanged)));



        private event DependencyPropertyChangedEventHandler DialogValueChanged;

        private static void OnDialogValueChanged(DependencyObject sender, 
                               DependencyPropertyChangedEventArgs e)
        {
            DialogWindow dialogWindow = (DialogWindow)sender;
            
            if (dialogWindow.DialogValueChanged != null)
                dialogWindow.DialogValueChanged(dialogWindow, e);
        }

        private void DialogWindow_DialogValueChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            if (e.NewValue == null)
                this.DialogResult = false;
            else this.DialogResult = true;
            
        }

        protected override void OnClosed(EventArgs e)
        {
            this.DialogValueChanged -= DialogWindow_DialogValueChanged;
            base.OnClosed(e);
        }

    }

Das Event feuert halt sofort, sobald ich das Fenster einmal mit über das Event geschlossen habe. Was natürlich unpraktisch ist. Ich kann es nicht mal irgendiwe nullen oder zurück setzten.

16.11.2014 - 23:14 Uhr

Hallo,

ich nutze zum ersten mal den ViewModelLocator aus dem MVVM Light in einen Projekt. Ich bin bisher davon ausgegangen, das der synonym für diesen Aufruf gilt.


public partial class DBConnectionView : ExWindow
    {
        public DBConnectionView()
        {
            InitializeComponent();
            //this.DataContext = new SQLConnectionViewModel();
        }
    }

Aber scheinbar ist dem nicht so. Nach langer Suche im Internet und dutzenden Versuchen war ich bisher leider erfolglos bei der Problembehebung. Ich habe ein Fenster abgeleitet und dort direkt ein Event registriert. Dieses feuert jedoch direkt, wenn ich das Fenster ein zweites mal Öffne. Es ist offensichtlich so, das das ViewModel irgendwie gecached wird und wiederverwendet.

Ich habe in der App.xaml das ViewModel registriert und im Fenster wie in dutzenden Beispielen gelesen, aufgerufen. Wo liegt mein Denkfehler? Jemand eine gute Idee?

<SO:ExWindow x:Class="SQLiteAdministrator.View.DBConnectionView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:SO="clr-namespace:SharedObjects;assembly=SharedObjects"
        xmlns:vm="clr-namespace:SQLiteAdministrator.ViewModel"
        WindowStartupLocation="CenterScreen"
        DialogValue="{Binding DialogValue}"
        DataContext = "{Binding Source={StaticResource Locator}, Path=SQLConnectionViewModel}"
        Title="DBConnectionView" Height="600" Width="600"
14.09.2014 - 21:42 Uhr

Wenn dir der Provider dort nicht angezeigt wird, ist er nicht zu deiner Version von VS.NET Compatible.

Bei dir steht 2013RC, stimmt das oder benutzt du eine Express?

Nein. Ich nutze Ultimate und Express, je nach Rechner.

Ich habe endlich etwas gefunden. Dieses muss installiert werden und dann funktioniert es auch.
https://system.data.sqlite.org/downloads/1.0.91.0/sqlite-netFx451-setup-bundle-x86-2013-1.0.91.0.exe

12.09.2014 - 23:39 Uhr

verwendetes Datenbanksystem: SQLite.

Hallo,

ich habe versucht, gemäß dieser Anleitung Portable databases (II): using SQLite with Entity Framework ein Projekt mit SQLite und EF6 zu erstellen. Beides ist für mich Neuland. Der dort erwähnte Provider wird mir aber nicht angezeigt. Wo liegt das Problem und kann mir evtl jemand sagen, wie ich es beheben kann?

Lg Marco

02.08.2014 - 22:18 Uhr

Einfach wird das nicht. Daber du kannst versuchen ein übergeordnetes Element abzufangen. Z.b. dein Main-Grid oder Window. Dort gibt es die Ergeinisse PreviewMouseWheel. Wenn du jetzt noch dein zuletzt genutzte Listbox dir zwischenspeicherst, kannst du mit den abgefangenen MouseWheel Ereignis die Scrollfunktion deiner Listbox verwenden.

Ist nur ein Ansatz, sollte aber Funktionen. Viel Spass beim tüfteln. 😃.

29.10.2013 - 19:03 Uhr

Hallo ihr lieben,

unser EDV-Team auf der Arbeit werkelt jetzt schon seit Jahren viel vor- und mit- und Nebeneinander her. Bisher hat die GL einfach eine Aufgabe in den Raum geworfen (durchaus manchmal Wörtlich gemeint) und irgendjemand sammelt diese auf und bearbeitet sie dann irgendwann. Jeder plant, Dokumentiert und werkelt für sich allein. Der eine Verwaltet seine Aufgaben per Posteds, der nächste auf einer Liste, der nächste in einem Worddokument und einer macht alles über Hirnschmalz. Für Dokumentation bleibt meist keine Zeit. So haben sich viele Missstände entwickelt und wir möchten mit diesen "Aufräumen".
Zwei grundlegende Dinge wollen wir erst mal mit anfangen. Eine Aufgabenverwaltung und eine Doku-Datenbank erstellen. Natürlich haben wir die Kenntnisse und Möglichkeit und was eigene Software zu bauen, aber nicht die Zeit für so etwas.

Habt ihr Vorschläge was man verwenden könnte. Ansprüche der Geschäftsleitung sind "üblich", darf nichts kosten (wobei wir diesen Zahn schon gezogen haben). An IT steht uns Lotus und auch diverse MS-Produkte zur Verfügung. Aufgaben haben wir meist im Kleinstbereich mit über 90% die in 1-3 Stunden erledigt sein können, aber manche auch, die mit mehreren Personen über Monate laufen (und parallel bearbeitet werden müssen).

Hat jemand Ideen für unterstützende Software?

25.10.2013 - 11:18 Uhr

Danke für den Link. Aber ist es leider nicht.

SketchFlow is available in Microsoft Visual Studio Ultimate or Visual Studio Premium when you install Blend for Visual Studio.

25.10.2013 - 11:04 Uhr

Ja, Sketchflow ist es gewesen. Danke. Aber gibt es das überhaupt noch. Blend wird doch nicht mehr vertrieben? Wenn ja, wo kann ich das her bekommen? Ich habe auf der Arbeit bisher nur die Expression-Version zur Verfügung.

25.10.2013 - 10:48 Uhr

Hallo,

gibt es ein Tool, mit dem man schnell Konzept-Oberflächen für WPF-Anwendungen erstellen kann, die man Entscheidungsträgern (gedruckt oder als Screenshoot) vorlegen kann? Eventuell sogar mit Beispieldaten? Ich meine so was schon mal gesehen zu haben und es kam sogar von MS. Jedoch weiß ich nicht mehr wie das Tool hieß.

Kennt jemand da ein geeignetes Tool?

Lg Marco

19.09.2013 - 01:42 Uhr

Hallo, ich plane zur Zeit ein Projekt, was man durchaus auch als Lernprojekt bezeichnen kann. Ich würde gerne eine Windows 8 App erstellen, welche sich Grunddaten und ggf. individuelle Daten aus einen Webservice lädt (was ja kein Problem dar stellen sollte).
Später möchte ich ggf. noch an weitere Portierungen wie die verschiedenen Handy- und Tabletbetriebssysteme.
Ich möchte mir natürlich möglichst wenig doppelt Programmieren müssen und frage mich, ob es dazu ggf irgendwo "Vorlagen" gibt, bei denen man sich was abschauen kann.

LG Marco

09.07.2013 - 09:47 Uhr

Ich habe kein Problem damit, dafür ein paar Euro zu bezahlen. Mein Chef jedoch schon 😉.

09.07.2013 - 08:51 Uhr

Hi,

ich glaube das Plugin war die CodeMap. War die mal Kostenfrei?

CodeMaid kann auf meinen System nicht installiert werden. Warum steht nicht im Installer.

Bleibt nur der Solution-Explorer. Kann man den auch irgendwie so einstellen, dass er automatisch die Methode / Feld oder zumindest die Klasse einblendet, in der man gerade arbeitet?

03.07.2013 - 16:31 Uhr

hi,

es gibt leider keine Replace Variante für Regularexpressions bei Sybase 12. Daher fällt diese Option flach. Ich vermute es geht ein Weg an einer Funktion vorbei.

03.07.2013 - 14:54 Uhr

Hi,

so trivial wie ihr es darstellt ist es nicht.

Denn. Es muss in einem SQL-Select verwendet werden ohne Replacefunktion. Die Funktion heißt REGEXP_SUBSTR. Ich habe also nur das Find zur Verfügung. Ich kann an der Stelle auch keine eigene Funktion einbauen, da die Rechte für die ausführenden dies nicht erlauben.

Die RegExp_Substr verhält sich wie eine normale RegEx-Find Methode, die allerdings nur das erste Element aus dem Sucharray zurück liefert. Dadurch erhalte ich ein "\d" nur immer den ersten Block (s.o.).

03.07.2013 - 13:56 Uhr

Hallo,

hilft mir leider nicht weiter. Habe ich schon überflogen.

03.07.2013 - 13:45 Uhr

verwendetes Datenbanksystem: Sybase

Hallo,

ich möchte gerne ein Regularexpression, der mir alle Zahlen einer Zeichenkette ausgibt in einem String. Aber ohne Array.

Beispiel
0147 / 4589 -> 01474589
1567 0789 458 -> 15670789458
16789 -> 16789

ich habe schon herum probiert, kenne mich aber nicht gut mit Regex aus. Ich bekomme immer nur den ersten Block.

01.07.2013 - 10:11 Uhr

Hallo, ich bin am überlegen, mein Tablett und meinen Rechner bereits auf Windows 8.1 zu updaten. Ich habe auf einigen Seiten gelesen, dass man nach Ablauf der Previewzeit zwingend seinen Rechner neu aufsetzen muss. Aber bei den Seiten von MS finde ich nichts dazu. Ich möchte es möglichst vermeiden den Rechner neu zu installieren, wenn es nicht unbedingt notwendig ist.

30.06.2013 - 10:28 Uhr

Hallo,

ich habe das Problem, dass, wenn meine Codes größer werden, ich viel Zeit mit suchen verbringe. Ich weiß zwar wo die Änderungen zu machen sind, aber finde meist die passende Funktion nicht wieder.

Ich hatte mal in einer älteren VS -Version ein PlugIn, bei dem in einem Fenster alle Methoden und Eigenschaften des aktuellen Objektes angezeigt wurden. Gibt es so etwas auch für VS 2012?

Gruß

16.05.2013 - 10:51 Uhr

Ich habe ein Problem mit meinen Datagrid und gebundene Commandos. Und zwar funktioniert der Code. Aber erst, wenn ich das erste mal eine Zelle ausgewählt habe. Wenn das DataGrid noch im Initialisieurngszustand ist, wird immer true zurück geben. Obwohl keine Zeile (sichtbar) markiert wurde.

Es ist wohl so, als würde das DataGrid beim der Initialisierung automatisch die Selection auf den dersten Datensatz legen, aber den nicht als seletierten Eintrag hervorheben.

CmdOperationFirst = new DelegateCommand((param) => OperationFirst(), (param) =>
            {
                bool t = (this.SelectedItem != null && this.SelectedItem.ToString() != "{NewItemPlaceholder}" && this.SelectedIndex != 0);
                return t;
            });
            CmdOperationUp = new DelegateCommand((param) => OperationUp(), (param) =>
            {
                bool t = (this.SelectedItem != null && this.SelectedItem.ToString() != "{NewItemPlaceholder}" && this.SelectedIndex != 0);
                return t;
            });
            CmdOperationDown = new DelegateCommand((param) => OperationDown(), (param) =>
            {
                bool t = (this.SelectedItem != null && this.SelectedItem.ToString() != "{NewItemPlaceholder}" && this.SelectedIndex != -1 && this.SelectedIndex < dg.Items.Count - 2 );
                return t;
            });
            CmdOperationLast = new DelegateCommand((param) => OperationLast(), (param) =>
            {
                bool t = (this.SelectedItem != null && this.SelectedItem.ToString() != "{NewItemPlaceholder}" && this.SelectedIndex != -1 && this.SelectedIndex < dg.Items.Count - 2);
                return t;
            });
            CmdOperationDelete = new DelegateCommand((param) => OperationDelete(), (param) =>
            {
                bool t = (this.SelectedItem != null && this.SelectedItem.ToString() != "{NewItemPlaceholder}");
                System.Diagnostics.Debug.Write(DateTime.Now);
                System.Diagnostics.Debug.Write(" ");
                System.Diagnostics.Debug.WriteLine(t);
                return t;
            });
 private object _SelectedItem = null;
        /// <summary>
        /// Gibt das selektierte Objekt aus dem Datagrid an.
        /// </summary>
        public object SelectedItem
        {
            get { return _SelectedItem; }
            set { _SelectedItem = value; NotifyPropertyChanged(); }
        }

        private int _SelectedIndex = -1;
        /// <summary>
        /// Gibt den Index des Datagrids an.
        /// </summary>
        public int SelectedIndex
        {
            get { return _SelectedIndex; }
            set { _SelectedIndex = value; NotifyPropertyChanged(); }
        }

        private object _CurrentItem = null;
        /// <summary>
        /// Gibt das aktuell ausgewählte Item im Grid an.
        /// </summary>
        public object CurrentItem
        {
            get { return _CurrentItem; }
            set { _CurrentItem = value; NotifyPropertyChanged(); }
        }
        
<DataGrid CanUserReorderColumns="True" 
                      CanUserResizeColumns="True" 
                      CanUserResizeRows="True" 
                      CanUserSortColumns="False"
                      AutoGenerateColumns="False" 
                      CanUserDeleteRows="True"
                      HeadersVisibility="Column"
                      IsSynchronizedWithCurrentItem="True"
                      x:Name="dg"
                      SelectionMode="Single"
                      CurrentItem="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:UcWenn}}, Path=CurrentItem, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True, Mode=TwoWay}"
                      SelectedItem="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:UcWenn}}, Path=SelectedItem, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True, Mode=TwoWay}"
                      SelectedIndex="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:UcWenn}}, Path=SelectedIndex, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True, Mode=TwoWay}"
                      AlternatingRowBackground="AntiqueWhite"  
                      AlternationCount="2"
                      ItemsSource="{Binding Operations, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}"
                  >
06.05.2013 - 18:58 Uhr

Oje ist ja schon fast nicht mehr war.

Jain. Das gebundene Objekt hat einen Schalter spendiert bekommen, den ich dann mit einen VisibleBooleanConverter in einem Datatemplate.

30.04.2013 - 10:34 Uhr

Das ist so aber nicht ganz richtig. Await wartet nicht, sondern lässt beide Prozeduren weiter laufen. Nur am ersten Vorkommnis, wo auf die Variable, die mittels Await befüllt wird, zu gegriffen wird, wird (ggf) gewartet.

Ich persönlich finde das Konzept von Async/Await sehr verwirrend und es wird viel zu häufig falsch verstanden.

29.04.2013 - 23:03 Uhr

Ich setzte schon singletons ein, aber die dateiaufruffunktion an sich ist bereits ein thread

29.04.2013 - 21:49 Uhr

Windows Rt verlangt es, dass sie Dateizugriffe Asyncron sind.

das speichersstem, welches ich erdacht, ist recht komplex. Es gibt zwei vereichnisse je objekt. Eines mit Originaldaten und eines mit änderungen, die nur die änderungen enthalten und die id, alles was original ist, taucht in der änderungsdatei nicht auf. Das macht das system sehr flexibel.

Mein problem ist es nun die dateien zusammen zu laden, dabei zu verbinden. Derweil kann der anwender aber schon änderungen vor nehmen. Jede änderung wird direkt aus die platte gesichert.

Warum sich das ins gehege kommt. Ist mir noch nicht so ganz klar, aber ich teste erst mit 10 datensätzen und später kommen hunderte dazu.

29.04.2013 - 21:29 Uhr

Hallo,

ich habe ein Problem mit meinen Dateizugriffen. Ich lasse die Dateizugriffe in separaten Tasks laufen und versuche sie trotzdem "der reihe nach" abzuarbeiten.

Leider funktioniert das nicht, wie gewünscht, die Task kommen sich trotzdem noch gegenseitig ins Gehege. Evtl funktioniert das lock nicht korrekt. aber ich frage mich, ob es nicht evtl sogar verbreitete Lösungen gibt. Immerhin sollte ein TaskStack nicht so selten verwendet werden, oder?

29.04.2013 - 10:33 Uhr

So ist es zur Zeit gelößt. aber ich habe gehofft, es gibt eine bessere Lösung.

29.04.2013 - 10:18 Uhr

Einfach ein zusätzliches Element, wenn man es "berührt" bzw anklickt wird entweder ein neues Item erzeugt und reell der Collection hinzu gefügt.

26.04.2013 - 21:39 Uhr

Hallo, das ist ein übliches Verhalten. Du hast nur vollen zugriff auf deine Objekte in dem Thread, in dem sie erstellt werden. Da deine Collection in einem anderen Thread erstellt wurde funktioniert dein Aufruf nicht.

Warum das so ist, wird hier beschrieben.

Link

26.04.2013 - 21:26 Uhr

Gibt es eine Möglichkeit, einem Gridview zu sagen, dass es neben den gebundenen Elementen ein "Dummyelement" für einen neuen Eintrag anzeigt?

Ich stelle mir das so vor T1 und T2 sind in der Liste. Nun soll das Gridview/Listview T1/T2 und NewItem anzeigen. So das man, wenn letzteres ausgewählt wird, passend reagieren kann.

16.04.2013 - 14:28 Uhr

Hi,

du hast vollkommen recht. Ich wollte den Beitrag schon zurück ziehen bzw gar nicht posten, da ich den Fehler schon selbst gefunden hatte. Warum ich ihn trotzdem eingestellt habe, weiß der Teufel...
Aber der Expectionhandler ist leider auch nicht angesprungen. Naja. Jetzt läufts aber. Trotzdem danke.

16.04.2013 - 09:52 Uhr

Hallo,

ich lasse ein WPF-Programm mit einen NotifyIcon laufen. Es funktioniert einwandfrei, wenn ich das Programm egal ob im Debug oder Releasekonfiguration über Visual Studio starte. Wenn ich das Programm veröffentliche, wird das Icon nicht mehr anzeigt, auch nicht wenn ich es als Administrator starte...



 public partial class MainWindow : Window
    {
NotifyIcon TrayIcon = new NotifyIcon();
public MainWindow()
        {
            InitializeComponent();
            try
            {
                ...
                CreateSystray();
            }
            catch (Exception e)
            {
                 ...
            }
        }
private void CreateSystray()
        {
            // NotifyIcon laden
            TrayIcon.Icon = new System.Drawing.Icon(@"Icons\ProgressSkip.ico");
            TrayIcon.Visible = true;
            //TrayIcon.MouseClick += showConsole;
            TrayIcon.ContextMenuStrip = new ContextMenuStrip();
            int IconCounter = 0;
            TrayIcon.ContextMenuStrip.Items.AddRange(new ToolStripItem[] { new ToolStripMenuItem() });
            TrayIcon.ContextMenuStrip.Items[IconCounter].Text = "Show Window";
            TrayIcon.ContextMenuStrip.Items[IconCounter].Click += showConsole;
            IconCounter++;
            TrayIcon.ContextMenuStrip.Items.AddRange(new ToolStripItem[] { new ToolStripMenuItem() });
            TrayIcon.ContextMenuStrip.Items[IconCounter].Text = "Exit";
            TrayIcon.ContextMenuStrip.Items[IconCounter].Click += new EventHandler(exitProgramm);
        }
}


09.04.2013 - 14:07 Uhr

Hallo,

ich habe ein ContentControl, in der diverse unterschiedliche UserControls geladen werden. Ich verwende MVVM und funktioniert wunderbar. Nun habe ich jedoch ein komplexeres UC, in der ich zusätzliche Kommandos verwenden muss/möchte, die aber nur für dieses UC relevant sind. Nun muss ich die irgendwie Binden.

Die Daten sind vorhanden die ich brauch, durch das Datacontext des UC. Doch wie kann ich nun die zusätzlichen Commandos binden. Wichtig ist dann, dass ich über die Commandos auch auf die Daten zu greifen können muss.

Ich kann es gerade nicht so gut beschreiben, daher werde ich es versuchen zu verbildlichen. Eine Liste mit X einträgen bei den X2 gewählt wird. X2 ist vom Typ Y für dem das UC Z geladen wird. Z erbt durch den Contentcontrol die den Datacontext aus X2. Wenn ich Z jetzt aber an ein neues ViewModel binde, ist der Datacontext weg. Aber nur das neue ViewModel gewährleistet mir neue Befehle.

Ich habe es jetzt so gelöst, dass das UC eine DependencyProperty Data erhält welches den DataContext beinhaltet und dieses an das neue VM weiter gibt. Funktioniert auch, aber sorgt das dafür, dass die IDE rum spinnt und sagt der XAML Designer "NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt".

Wie kann ich das besser lösen?

05.04.2013 - 10:48 Uhr

Nicht auf unmittelbaren wege, da es sich um drei unabhängige Controls handelt. Du must events der Listboxen abonierenen, also selectionchanged. Damit erfährst du, wo der User etwas markiert / demarkiert hat. Wenn er etwas markiert, kannst du die anderen beiden Listboxen per code demarkieren. Z.b. SelectedIndex auf -1 oder SelectedItems auf null setzen.

05.04.2013 - 09:46 Uhr

Kann es sein, dass du IconScale nicht korrekt initialisierst? Wenn du IconScale mit null initialisert, dann kann es zu so einer Fehlermeldung kommen. Dürfte aber nicht deinen Problem erklären.

05.04.2013 - 09:42 Uhr

Hi,

die Operation macht nichts wildes, daher habe ich sie nicht gepostet. Die Operation setzt wieder die Methode und ruft die PropertyChanged auf. Auch wenn wenn ich alles dazwischen weg lasse, passiert nichts (korrektes). Der getter wird aufgerufen, aber die UI ändert die ansicht nicht.


  private void SetRuletype(int value, int table)
{
    if (value != 0)
            {
                // Tabelle ermitteln
                List<KeyValuePair<int, string>> tmpTable = null;
                switch (table)
                {
                    case 1:
                        tmpTable = PossibleInputRules; 
                        break;
                    case 2:
                        tmpTable = PossibleTempRules;
                        break;
                    case 3:
                        tmpTable = PossibleOutputRules;
                        break;
                }

                 //Regel mit internerID ermitteln und erzeugen
                string type = ((KeyValuePair<int, string>)tmpTable[value]).Value;
                Rule rule = null;
                switch (type)
                {
                    case "ErsteZeilenIgnorieren":
                        rule = new ErsteZeilenIgnorieren();
                        break;
                    case "LetzteZeilenIgnorieren":
                        rule = new LetzteZeilenIgnorieren();
                        break;
                    case "AnredeZuPersonenart":
                        rule = new AnredeZuPersonenart();
                        break;
                    case "BereitsImportiert":
                        rule = new BereitsImportiert();
                        break;
                    case "Dateiname":
                        rule = new Dateiname();
                        break;
                    case "ErzeugeString":
                        rule = new ErzeugeString();
                        break;
                    case "FestesZeilenfeld":
                        rule = new FestesZeilenfeld();
                        break;
                    case "PersonenartZuIkarosAnrede":
                        rule = new PersonenartZuIkarosAnrede();
                        break;
                    case "SQLFeld":
                        rule = new SQLFeld();
                        break;
                    case "Trennzeichen":
                        rule = new Trennzeichen();
                        break;
                    case "Validate":
                        rule = new Validate();
                        break;
                    case "Wenn":
                        rule = new Wenn();
                        break;
                    case "WennGefuellt":
                        rule = new WennGefuellt();
                        break;
                    case "ErstellePostSQL":
                        rule = new ErstellePostSQL();
                        break;
                    case "ErstellePreSQL":
                        rule = new ErstellePreSQL();
                        break;
                    case "Accumio":
                        rule = new Accumio();
                        break;
                    case "BarpayZahlungen":
                        rule = new BarpayZahlungen();
                        break;
                    case "InternetportalAdressermittlung":
                        rule = new InternetportalAdressermittlung();
                        break;
                    default:
                        System.Windows.MessageBox.Show(string.Format("Die Regel {0} ist noch nicht implementiert", type));
                        break;
                }

                // Wenn eine Regel erstellt wurde, dann diese austauschen.
                if (rule != null)
                {
                    bool change = true;
                   

                    if (change)
                    {
                        int index = this.SelectedIndex;
                        this.WorkingRules.RemoveAt(this.SelectedIndex);
                        this.WorkingRules.Insert(index, rule);
                        this.SelectedIndex = index;
                    }
                }

                switch (table)
                {
                    case 1:
                        this._selectedInputRuleIndex = 0;
                        NotifyPropertyChanged("SelectedInputRuleIndex");
                        break;
                    case 2:
                        this._selectedTempRuleIndex = 0;
                        NotifyPropertyChanged("SelectedTempRuleIndex");
                        break;
                    case 3:
                        this._selectedOutputRuleIndex = 0;
                        NotifyPropertyChanged("SelectedOutputRuleIndex");
                        break;
                }
            }

04.04.2013 - 15:08 Uhr

Ist nur eine ganz normale Eigenschaft

        private int _selectedInputRuleIndex;
        /// <summary>
        /// Gibt den Index der ausgewählten Regel an.
        /// </summary>
        public int SelectedInputRuleIndex
        {
            get { return _selectedInputRuleIndex; }
            set { _selectedInputRuleIndex = value; NotifyPropertyChanged(); SetRuletype(value, 1);}
        }

Die Funktion SetRuletype ändert dann Diverses ab und setzt zum Schluss die Eigenschaft SelectedInputRuleIndex auf 0 (Schleife wird verhindert).

04.04.2013 - 14:30 Uhr

Hallo,

ich nutze eine Kombobox die eine Aktion auführt (also nicht nur eine Eigenschaft ändert). wenn die Aktion ausgeführt wurde, soll die Combobox wieder auf null gesetzt werden, genau der erste Eintrag, der nichts anzeigt. Es wird ein MVVM Pattern verwendet.

Mein Problem ist, wenn ich durch meine Funktion den Wert der Eigenschaft ändere, kommt dieser an der Oberfläche scheinbar nicht an. Die Wert wird scheinbar gemeldet, aber die Listbox ändert sich nicht.

Ich weiß echt nicht, was ich noch einstellen soll/kann/muss.


   <ComboBox Grid.Column="1" x:Name="Input" 
                          Visibility="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.WorkingTable, Mode=TwoWay, Converter={StaticResource enumToVisibility}, ConverterParameter=Input}" 
                          ItemsSource="{Binding PossibleInputRules}"
                          DisplayMemberPath="Value"
                          SelectedValuePath="Key"
                          SelectedIndex="{Binding InputRuleIndex, Mode=TwoWay, NotifyOnTargetUpdated=True, NotifyOnSourceUpdated=True}"
                          >
                </ComboBox>

03.04.2013 - 11:01 Uhr

Hallo,

ich hab ein überliegendes Element, welches in bestimmten Situationen in der Laufzeit eingeblendet wird. Dieses überlagert dann die gesamte Seite. Aber im Designer während der Designzeit wird es auch immer eingeblendet. Kann man das Element irgendwie so steuern, dass es wärend der Designzeit ausgeblendet wird?

<Grid Visibility="{Binding Path=IsBusySingle, Converter={StaticResource BoolToVisConverter}, TargetNullValue=Collapsed, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged}">
26.03.2013 - 09:16 Uhr

Hallo,

wir haben diverse Netzwerkdrucker in unseren Unternehmen. Prinzipiell hat man ja zwei Möglichkeiten solche Drucker zu verwenden. Einen Rechner als Server zu missbrauchen und über diesen dann eine Freigabe laufen zu lassen oder aber den Drucker auf jeden Client als Netzwerkdrucker über TCP/IP Protokoll ein zu binden.
Wir haben hier letztere Variante im Einsatz, ich frage mich nur, ob das die Richtige wahl ist, oder ob es nicht besser ist, die Aufträge über einen (virtuellen) Drucker-Server zu bündeln.

Was ist besser geeignet? Wir reden hier je nach Drucker von 10-25 Arbeitsplätzen, die darauf zu greifen.

25.03.2013 - 15:06 Uhr

Hi,

ich kann mit diesen vielen dutzend Varianten leider nichts anfangen. Was muss ich den genau ausprobieren? Zudem ich damit bisher auch keine Berührungspunkte hatte (also mit Connectionstrings). Kann man das nicht auch anhand der Systemtreiber sehen oder der eingerichteten ODBC Datenquellen?

25.03.2013 - 11:18 Uhr

Hi,

wenn der gleiche Rechner die Dateien auch erstellt, sollte dann nicht bereits ein Treiber vorhanden sein?

Ich finde wohl einen installierten ODBC Treiber, aber auch Sybase Treiber, kann es sein, dass es Sybase DBF Dateien sind?

22.03.2013 - 14:05 Uhr

Ja. Es ist eine DBF. Mit jeder .DBF wird noch eine .FPT erstellt, falls das weiter hilft.

Welche Codezeilen sind den Überflüssig?

Ich habe mal ein paar Dateien mit dem Database-Explorer geöffnet. Als ich mir die Daten per abfrage anschauen wollte, erhalte die fehlermeldung "Fehler in der Abfrage: Der Index lag außerhalb des Bereiches. Er muss nicht negativ oder kleiner als die Auflistung sein. Parametername index".

Die Tabellen in der DBF haben auch eine seltsame struktur. Sie haben zwar Kopfzeilen, aber es folgen Informationszeilen, dann die eigentliche Auflistung der Daten und dann eine Gesamt/Summierungszeitel. Die Spaltenanzahl wird zwar nicht überschritten, aber die Zeilen sehen schon ein wenig seltsam dadurch aus.