Laden...

Forenbeiträge von Boris0815 Ingesamt 225 Beiträge

15.10.2014 - 20:06 Uhr

Habs. 😃

Ich hatte eine DateTime nicht gesetzt, daher der Fehler.

DateTime values that are greater than DateTime.MaxValue or smaller than DateTime.MinValue when converted to UTC cannot be serialized to JSON.

Das WCF-Tracing ist einfach nur genial, damit hast Du mir garantiert schon jetzt in der Zukunft geholfen. 😃

Vielen Dank für den Tip!

Gruß

Boris

15.10.2014 - 13:57 Uhr

Das mit dem Tracen von WCF hab ich zuvor noch nicht gemacht, aber ein cooles feature. 8)
Ich werde es mir heut Abend mal genauer anschauen und melde mich.

Gruß
Boris

15.10.2014 - 11:52 Uhr

Hallo,

ich hoste den Service in einer Windows-Anwendung nicht im IIS.
An welcher Stelle müsste ich dann schauen, um es zu aktivieren?

Gruß

Boris

15.10.2014 - 10:06 Uhr

Hallo,

ich habe einen REST-Service erstellt und einen Windowsclient. Jetzt habe ich allerdings das Problem, dass POST-Anfragen nicht funktionieren.
Bei POST-Anfragen bekomm ich immer eine Fehlermeldung am Clienten, dass der Server die Verbindung geschlossen hat.> Fehlermeldung:

...an-existing-connection-was-forcibly-closed-by-the-remote-host

Ich hab schon etwas gegooglet und heraus gefunden das es wohl einen Bug im Framework 4.0 gab, ich alle Teile auf 4.5.1. geupdated, leider ohne Erfolg.
Der Service läuft auf einem Server mit einem SSL-Zertifikat. Ich habe auch schon probiert den Service ohne SSL zu nutzen, hat allerdings auch nichts geändert.

Hier ein bischen Code vom Server:

        public WebServiceHost horst = new WebServiceHost(typeof(meinServiceImpl));
        //private string url = "https://meinserver:29999/meinService";
        private string url = "http://meinserver:29999/meinService";

        public void StartService() 
        {
            WebHttpBinding binding = new WebHttpBinding();
            //binding.Security.Mode = WebHttpSecurityMode.Transport;
            horst.AddServiceEndpoint(typeof(ImeinService), binding, url);
            horst.Open();
        }

Und die Post und Get Methoden (generisch)

       public T Get<T>(string path)
        {
            var response = client.GetAsync(baseUri+path).Result;
            if (response.IsSuccessStatusCode&& response.Content.Headers.ContentLength > 0)
            {
                return this.ParseResponse<T>( response.Content.ReadAsStringAsync().Result);
            }
            return default(T);
        }

        public T Post<T, U>(string path, U postdata)
        {
            DataContractJsonSerializer dJson = new DataContractJsonSerializer(typeof(U));
            var ms = new MemoryStream();
            dJson.WriteObject(ms, postdata);
            string s = Encoding.UTF8.GetString(ms.ToArray());
            StringContent content = new StringContent(s, Encoding.UTF8, mediatypeStr); 

            var response = client.PostAsync(baseUri+path, content).Result;
            if (response.IsSuccessStatusCode && response.Content.Headers.ContentLength > 0)
            {
                return this.ParseResponse<T>(response.Content.ReadAsStringAsync().Result);
            }
            return default(T);
        }

Hat jemand eine Idee für mich?

Gruß
Boris

30.11.2012 - 09:47 Uhr

Hiho,

ich wollte mal nachfragen, ob jemand von euch evtl. Ehrfahrungen damit gemacht hat, Windows 8 auf einer SD-Card zu installieren und nutzen.
Ich möchte Windows 8 inkl. Visual Studio 2012 mal testen. Ich habe aber auf meinem Arbeitsrechner auf Grund einer SSD nicht genügend Platz. Das System neu aufsetzen ist mir zu heikel da ich mehrere Projekte laufen habe und ich da momentan nichts riskieren möchte.

Amazon hat zur Zeit ja Cyber-Monday-Woche mit teilweise guten Angeboten, und da gibts heute Abend eine 64GB SD-Card (Class 10).
Größe wäre gut, aber ob die Geschwindigkeit reicht?

Gruß Boris

09.10.2012 - 15:22 Uhr

Hallo MichiG,

das mit den Spalten passt so, das DataGrid ist noch nicht mit Daten gefüllt.
Es geht mir um den ungenutzten Platz unterhalb des Grids. Wenn Du den Screenshot in voller Bildgröße anschaust siehst Du unter dem DataGrid die schwarze Linie des Border, der um den Expander liegt.
Mein Ziel ist es, dass das Datagrid bzw. der Expander den Rest vom Window auch ausfüllt.

Gruß

Boris

09.10.2012 - 11:39 Uhr

Hallo,

ich schreibe gerade eine WPF-Anwendung in der ein Expander sitzt. Die Anwendung besteht im Prinzip aus zwei Teilen, den oberen Teil den man immer sieht und den unteren Teil, der durch einen Expander "versteckt" werden kann.
Das Verhalten des Fensters soll so sein, dass wenn der Expander eingeklappt ist, sich das Fenster auf die Größe des Inhaltes anpasst. (Funktioniert schon)
Wenn der Expander ausgeklappt ist und das Fester maximiert ist, soll auch der gesamte Fensterinhalt genutzt werden. Das Letzte Element im Expander ist ein DataGrid dieses soll den ganzen Fensterinhalt ausfüllen, aber die Größe passt sich immer dem DataGridinhalt an. Ich hab im Anhang ein Bild, der das Fehlverhalten darstellt.
Kann mir bitte jemand sagen wo es hängt?

Hier der etwas vereinfachte XAML:

<Window x:Class="xxx.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:ownControl="clr-namespace:owncontrol"
        Title="MainWindow" WindowState="Maximized" SizeToContent="Height" WindowStartupLocation="CenterScreen">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="50" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <Border BorderThickness="1" BorderBrush="Black">
            <ownControl:ownControl Grid.Row="0" x:Name="ownControl" DataContext="{Binding ApVM}" HorizontalAlignment="Left"/>
        </Border>
        <Border BorderThickness="1" BorderBrush="Black" Grid.Row="1">
            <StackPanel Orientation="Horizontal">
                <Button Margin="5" Command="{Binding OptionButton}" Width="60">
                </Button>
            </StackPanel>
        </Border>
        <Border BorderThickness="1" BorderBrush="Black" Grid.Row="2" VerticalAlignment="Stretch">
            <Expander IsExpanded="True">
                <DockPanel LastChildFill="True">
                    <TreeView Height="200" DockPanel.Dock="Top">
                    </TreeView>
                    <StackPanel Height="55" Orientation="Horizontal" DockPanel.Dock="Top">
                        <Button Margin="5" Command="{Binding NewFolderButton}" Width="70">
                        </Button>
                        <Button Margin="5" Command="{Binding FileBlockButton}" Width="70">
                        </Button>
                    </StackPanel>
                    <DataGrid VerticalAlignment="Stretch">
                        <DataGrid.Columns>
                            <DataGridTextColumn Header="Spalte 1"/>
                            <DataGridTextColumn Header="Spalte 2"/>
                            <DataGridTextColumn Header="Spalte 3"/>
                        </DataGrid.Columns>
                    </DataGrid>
                </DockPanel>
            </Expander>
        </Border>
    </Grid>
</Window>

Gruß

Boris

25.07.2012 - 14:09 Uhr

Hallo,

ich habe mal eine allgmeine Frage zu WCF und sehr großen Zugriffszahlen.
Wir sind dabei ein Projekt zu entwickeln, in dem auch ein WCF-Server zum Einsatz kommen soll.
Es kann unter Umständen dazu kommen, dass gleichzeitig sehr viele Zugriffe auf diesen Server geschehen. (>10000)
Die Methoden, die dieser Server beinhalten wird, sind relativ schlank. Es werden max ein paar Strings übertragen, keine Datenobjekte.
Als Binding soll ein HttpBinding genutzt werden, da wir auch Java bedienen müssen.

Schafft das ein WCF-Service ohne Probleme, oder sollte man zu einer anderen Technik
wechseln? Es gibt ja z.B. das Problem, das wenn man DataTables überträgt schnell eine OutOfMemory-Exception auslösen kann.

Gruß

Boris

12.06.2012 - 09:39 Uhr

Hallo Paladin,

also um 15 Punkte zu erreichen, sollte das Projekt in irgendeiner Weise beeindrucken. Das geht am Besten mit irgendwas zum anschauen oder anfassen. 👍

was auch immer beeindruckt ist die Kinect. Die SDK ist gut und einfach zu nutzen und Du erhälst "schnell" etwas interessantes was deine Prüfer nicht langweilt.
Neben der Bildverarbeitung könntest Du auch die Spracherkennung der Kinect nutzen.

Gruß

Boris

11.06.2012 - 11:21 Uhr

Deutschland gewinnt Holland verliert, die Welt ist doch noch in Ordnung. 😁

Natürlich wird Deutschland Europameister! 🙂

Gruß

Boris

29.03.2012 - 09:23 Uhr

Hallo,

ich habe mal eine allgemeine Frage zum NavigationService in WPF. Ich möchte in meinem nächsten Projekt (Windowsanwendung mit WPF) evtl. den NavigationService nutzen und meine Inhalte in Pages packen.
Ich habe den NavigationService vorher noch nicht genutzt. Ich habe mir gerade ein Minitestprogramm geschrieben nur um zu sehen wie ich zwischen Pages hin und her springen kann. Wenn ich z.B. von meiner MainPage auf Page1 wechsel:

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.Relative));
        }

In meinem Projekt wird es sehr viele Pages geben, die unter anderem auch "größere" Inhalte (Multimediakrams) beinhalten. Kann es dabei zu Performanceproblemen kommen, weil er alle Pages am Anfang lädt und sollte ich meine Pageinhalte erst bei Bedarf selber laden? Oder regelt das alles der NavigationService für mich und ich muss mir darum keine Gedanken machen?

Gruß

Boris

22.03.2012 - 19:41 Uhr

Hallo,

danke für deinen Hinweis. Ich habe eine Stelle gefunden, wo ich den Fehler abfangen kann.

    private class ServiceClientChannel : ChannelBase<IMyService>, IMyService
    {...
        public System.Collections.Generic.Dictionary<string, string> EndPollWait(System.IAsyncResult result)
        {
            try
            {
                object[] _args = new object[0];
                System.Collections.Generic.Dictionary<string, string> _result = ((System.Collections.Generic.Dictionary<string, string>)(base.EndInvoke("PollWait", _args, result)));
                return _result;
            }
            catch (System.Exception)
            {
                return null;
                
            }
        }...

Da gebe ich nun einfach null bzw. eine Exception zurück, was ich wiederrum in meiner
"serviceClient_PollWaitCompleted"-Methode auswerten kann.

Gruß

Boris

22.03.2012 - 17:54 Uhr

Hallo,

ich nutze für ein WindowsPhone Projekt einen WCF-Service. Ich muss dazu die Service-Methoden asynchron aufrufen.
Ich habe nun das Problem, wenn ich mit meinem Phone die Netzwerkverbindung verliere und ich den Service nicht mehr nutzen kann, dass meine Phone-Anwendung geschlossen wird.
Ich möchte nun den Fehler abfangen, um darauf z.B. mit einem Hinweis reagieren, und meine Anwendung soll natürlich weiterlaufen.
Ich habe bis jetzt probiert den Methodenaufruf in ein Try zu packen, aber das funktioniert leider nicht.

            try
            {
                if (gameTime.TotalGameTime.Seconds % 3 == 0 && gameTime.TotalGameTime.Seconds != lasttime)
                {
                    lasttime = gameTime.TotalGameTime.Seconds;
                    serviceClient.PollWaitAsync(gameName, gameId, playerName);
                }
            }
            catch (Exception ex)
            {
                if (!NetworkInterface.GetIsNetworkAvailable())
                {
                    lostConnection = true;
                    Guide.BeginShowMessageBox("Error", "Lost Connection", new List<string> { "OK" },
                    0, MessageBoxIcon.Alert, msgBox, null);
                }
}

Hat jemand einen Rat für mich?

Gruß

Boris

05.03.2012 - 14:17 Uhr

Hallo Dawntide,

mit dem Galileo Openbook bist Du sehr gut bedient, ich denke ein zweites Buch ist nicht unbedingt von Nöten.
Ich Persönlich halte nicht viel von den 21 Tagen Büchern, da 21 Tage verdammt wenig sind. 😉
Die "von Kopf bis Fuß"- Bücher haben einen interessanten Aufbau was einem das Erlernen erleichtern kann.
Ich würde an deiner Stelle einfach erstmal mit dem Galileo Buch anfangen, und dann schauen ob Dir Themenbereiche fehlen bzw. nicht ausführlich genug sind, und dann evtl. andere Quellen in Betracht ziehen.

Gruß

Boris

23.02.2012 - 17:49 Uhr

Hallo,

ich nutze einen Team Foundation Server um meinen Quellcode zu verwalten. Seit neustem (1-2 Monaten) habe ich dauernd das Problem, dass ich die Verbindung zu meinem TFS verliere.
Er will dann dauernd dass ich mich neu einlogge (WindowsAuthentifizierung). Das is echt nervig geworden und man kann nicht wirklich gut arbeiten, wenn man in kurzen Abständen Dateien ein oder auschecken will und dies jedes mal 15 Sekunden dauerd.
Gibt es eine Einstellung wo man dies ändern kann? Ich hab das Gefühl das irgend ein Update da was geändert hat, früher war alles besser. (Sagte schon meine Oma 😄)

gruß

Boris

06.02.2012 - 13:52 Uhr

Hallo,

danke für die Antworten. Es funktioniert wirklich... Wir haben einen Dreher in unseren Daten, darum hab ich den Werrt nicht gefunden.

Trotzdem Danke.

Gruß

Boris

06.02.2012 - 12:27 Uhr

Hallo,

ich habe folgendes LINQ-Statement um bestimmte Werte in einer Dictionary zu finden.

 KCParameter = (from k in KCParameter where k.Value.Contains("Bla") select k)
           .ToDictionary(item => item.Key, item => item.Value);

Der Funktioniert auch soweit. Ich finde damit alle Werte die "Bla" enthalten. Aber nur wenn "Bla" allein steht. Wenn im String "Blabla" steht finde ich ihn nicht. Gibt es eine Möglichkeit, wie z.B. in SQL mit dem %-Zeichen, dass ich auch die Werte finden in dem "Bla" nicht alleine steht?

Gruß Boris

01.02.2012 - 07:59 Uhr

Hallo,

nein ich möchte mit der WPF-Awendung verschiedene Variablen überwachen. Beispielsweise habe ich eine Liste mit Nutzern die in dem Moment den WCF-Service nutzen. Die Anzahl der Nutzer möchte ich dann in der GUI anzeigen.
Oder ich zähle wie oft eine bestimmte Methode meines Service aufgerufen wurde, was ich dann ebenfalls darstellen möchte.

Gruß

Boris

31.01.2012 - 16:35 Uhr

Hallo,

ich habe einen WCF-Service der in einer WPF-Awendung gehostet wird. Nun möchte ich ein paar Informationen aus den WCF-Methoden in meiner WPF-Anwendung darstellen.
Ich steh grad ein bissle auf dem Schlauch da ich nicht weis wie ich das machen soll.
Ich dachte daran dem Service ein Observer-Objekt zu übergeben, weis aber nich an welcher Stelle.
In meiner WPF-Anwendung hab ich ja nur mein ServiceHost-Objekt.

                    horst = new ServiceHost(typeof(ServiceImpl));
                    horst.Open();

Weis jemand Rat?

Gruß

Boris

22.01.2012 - 15:47 Uhr

Hallo,

ich habe eigene Visual Studio Vorlagen, die auch ohne Probleme funktionieren. Nur wenn ich versuche solch eine Vorlage in einem XNA/Phone7-Projekt zu laden klappt das nciht, da diese garnicht zur Auswahl stehen.
Gibt es im Studio eine Konfigurationsmöglichkeit, damit ich meine Vorlagen nutzen kann, oder ist dies bei XNA-Projekten garnicht möglich?

Gruß

Boris

12.01.2012 - 17:50 Uhr

Erstmal danke für eure Hinweise.

Die Metro-ähnliche (Absicht?) Designumsetzung finde ich allerdings schön. Benötigt aber hier und da noch eine kleine Umstrukturierung, wie ich denke.

Ja das war Absicht. 😉

Bilder werden mir keine angezeigt, wenn ich z.B. auf Zoo klicke oder doppelklicke.

Wenn die Synchronisierung beim Start (daher kam die erste Wartezeit) funktioniert hat, sollten da Bilder drinn sein. Du kannst die Synchro nochmal im Programm auslösen (Der Button mit den runden Pfeilen)

Wenn ich nun dort mittels des Bearbeiten-Icons den Zoo-Text auf Zoo-Test ändere und dieses Übernehme, wird leider kein Text hier übernommen.

Dies ist noch ein Fehler. Ist teilweise nur ein Refreshproblem.

Gruß

Boris

12.01.2012 - 12:44 Uhr

Hallo,

wir haben inzwischen ein paar kleinere Fehler behoben.
Desweiteren haben wir einen TestAccount eingerichtet, so dass man nicht gleich gezwungen ist sich zu registrieren.

Benutzername: Test
Passwort: 1234

Dann haben wir noch eine Version hochgeladen, die ihr nicht installieren müsst.
Ihr könnt diese hier herunterladen. Einfach das zip-File entpacken und Awenga.exe starten.
Awenga legt einen Ordner in eurem AppData-Ordner an. In dem zip-File liegt ein Programm (AwengaUninstaller.exe), der diesen Ordner wieder löscht.

Wir würden uns freuen, wenn der ein oder andere mal reinschaut und Awenga testet.

Gruß
Andre
Boris

09.11.2011 - 14:08 Uhr

Hallo,

ich habe seit Neustem in meinem Debug/Release-Ordner eines Projektes, mehrere neue Ordner mit Sprachinformationen(?) (de, en, es, fr, it, ja, ko, zh-Hans, zh-Hant). Ich weiß nicht warum die jetzt da sind.
Kann mir jemand sagen wie ich die wieder ausschalte, und für was die gut sind?
Mein Projekt beinhaltet eigentlich keine unterschiedlichen Sprachen.

Gruß Boris

08.11.2011 - 09:42 Uhr

Hallo,

danke xxxprod damit funktionierts auch in meinem Fall einwandfrei. 🙂

Gruß

Boris

08.11.2011 - 09:08 Uhr

Hallo,

danke für eure Antworten. Die CollectionViewSource war mir neu, habe es damit gerade probiert, funktioniert aber leider noch nicht ganz. Ich denke es liegt an meinem Aufbau.
Meine Daten sehen stark vereinfacht so aus:

    
    public class OwnClass  // INotifyPropertychanged ist überall implementiert
    {
        public ObservableCollection<ItemType1> Items1 { get; set; }
        public ObservableCollection<ItemType2> Items2 { get; set; }
    }

    public class VM // INotifyPropertychanged ist auch hier überall implementiert
    {
        public ObservableCollection<OwnClass> Collection { get; set; }
    }

INotifyPropertychanged ist überall implementiert und wird auch in den Properties aufgerufen.


<ListBox ItemsSource="{Binding Path=Collection}>
     <ListBox.ItemTemplate>
           <DataTemplate >
                <StackPanel>
                       <UC1:usercontrolFuerItems1/>
                       <UC2:usercontrolFuerItems2/>
                </StackPanel>
           </DataTemplate>
      </ListBox.ItemTemplate>
</ListBox>

In UC1 und UC2 sind zwei UserControls mit den beiden ListBoxen, in denen ich die Selektierungen aufheben möchte.


<ListBox ItemsSource="{Binding Path=Items1}>
     <ListBox.ItemTemplate>
...

Ich habe die CollectionViewSource mit eingebaut, jedoch bleiben meine Items selektiert. Ich habe mal debugged und habe dabei gesehen, dass die Items in den Collections korrekt auf null gesetzt werden. Ich denke mal, dass das nicht bis zur View kommt, da noch eine Collection drumherum liegt.

Ich hatte dann noch versucht die Collection zu refreshen, dadurch werden aber leider alle Selektierungen aufgehoben.

                    
var cv = CollectionViewSource.GetDefaultView(Collection.Items1);
                    cv.MoveCurrentTo(null);
var cv2 = CollectionViewSource.GetDefaultView(Collection);
                    cv2.Refresh();

Könnt ihr mir da weiterhelfen?

Gruß

Boris

07.11.2011 - 19:16 Uhr

Hallo,

wie der Titel schon sagt, würd ich gerne wissen ob es eine Möglichkeit gibt in einer ListBox die Selektierung im ViewModel aufzuheben.
Hintergrund ist, dass ich zwei Listboxen habe, in der Items selektiert werden können. Wenn ein Item selektiert ist, bekommt es von mir einen besonderen Style. Wenn nun in der anderen ListBox ein Item selektiert wird, soll dieses Item den Style bekommen, und das vorherige Item aus der anderen ListBox soll den Style verlieren.
Momentan ist immer je ein Item in der ListBox selektiert und beide haben den Style. Es soll aber immer nur ein Item den Style haben.

Gruß

Boris

20.10.2011 - 15:15 Uhr

Hallo Herbivore,

Ich würde mal auf .EXE läuft auf Entwicklungsrechner, aber nicht auf anderem PC tippen.

Es handelt sich dabei um den selben Rechner. Das macht mich auch etwas stutzig.

[EDIT]
Ich glaube ich habe das Problem. Mein Logger versucht in diesem Ordner seine Log-Datei anzulegen. Dieses Recht hat er als NichtAdmin aber nicht. Ich werde mal die Log-Datei in den AppData verschieben evtl. geht es ja dann.

Gruß

Boris

20.10.2011 - 13:43 Uhr

Hallo Bernd,

schreibst oder liest Du Daten aus dem Applikationsverzeichnis in Deiner Anwendung ?

Ja ich erstelle einen Ordner und zwei Dateien im Ordner "...\user\AppData\Roaming&quot;. Dies tut die Awendung, wenn ich aus dem Release-Ordner starte, korrekt.

Was passiert wenn Du in ein anderes Verzeichnis installierst ?

Leider der gleiche Fehler. Ich habe einfach in ein Verzeichnis auf einer Datenpartition installiert.

Was passiert wenn Du die Exe aus dem Bin Verzeichnis in das Programme... Verzeichnis kopierst ?

Auch hier der gleiche Fehler.

Was mir gerade noch aufgefallen ist, ist dass ein Prozess der Anwendung gestartet und im Task-Manager angezeigt wird.

Gruß

Boris

20.10.2011 - 12:42 Uhr

Hallo,

ich habe eine Awendung entwickelt und bin gerade dabei einen Windows-Installer zu entwickeln. Ich nutze dazu den Windows-Installer der im Visual Studio 2010 mit integriert ist.
Ich habe es genauso gemach wie es im 🛈 beschrieben ist.
Wenn ich meinen Installer ausführe wird meine Anwendung ganz normal im Programme/... -Ordner installiert. Es sind auch alle Dateien richtig kopiert worden.
Wenn ich nun versuche meine Anwendung zu starten (auch als Admin probiert) passiert einfach nichts. Keine Reaktion. Wenn ich die Anwendung aus den Debug bzw. Release Ordnern starte funktioniert es einwandfrei. Es wird auch keine Fehlerlog-Datei geschrieben.

Hat jemand eine Idee was das sein könnte?

Gruß

Boris

25.09.2011 - 16:17 Uhr

hups... 8)

Danke 😉

25.09.2011 - 12:40 Uhr

Hallo,

ich hab mal ein Bild angehängt. Das Graue ist das Window, das schwarze mein Control mit dem Scrollviewer.

gruß

Boris

25.09.2011 - 11:44 Uhr

Hallo,

ich habe ein Control das einen Scrollviewer hat. Dieser soll aber nur sichtbar sein, wenn er auch gebraucht wird, sprich der Inhalt größer als das Control wird. Das einzige was ich gefunden habe ist, dass der Scrollbar ausgeschaltet wird, ich möchte aber den gesamten Scrollviewer verstecken.
Muss ich da selber was machen, oder gibt es da ein Attribut was ich setzen kann?

    
    <Border>
        <ScrollViewer HorizontalScrollBarVisibility="Hidden" >
            <StackPanel>
            ...
            </StackPanel>
        </ScrollViewer>
    </Border>

Gruß

boris

06.09.2011 - 15:57 Uhr

Hallo,

ich habe eine ItemsControl mit mehreren Expandern. Anzahl ist Dynamisch. Zu Beginn sind alle Expander geschloßen (collapsed) und es soll immer nur einer geöffnet sein.
Wenn nun jemand einen Expander öffnet, soll ein evtl. geöffneter automatisch geschlossen werden. Muss ich mir da etwas selber im Code-Behind basteln, oder kann man das irgenwie im XAML lösen?

            <ItemsControl ItemsSource="{Binding Path=Liste}" x:Name="list" Width="200">
            <ItemsControl.ItemTemplate>
                <DataTemplate >
                    <StackPanel>
                            <Border Style="{DynamicResource BorderStyle}" CornerRadius="2">
                                <Expander IsExpanded="False" Style="{DynamicResource ExpanderStyle}" >
                                 ...
                                </Expander>
                        </Border>
                    </StackPanel>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>

Gruß

Boris

28.07.2011 - 10:49 Uhr

Mich würde sehr interessieren, wie diejenigen, die ein Studium im Bereich Informatik bereits machen / abgeschlossen / abgebrochen haben den "Nutzen" für professionelles berufliches Software entwickeln sehen, oder selbst erfahren haben.

Ich habe selbst Informatik an der FH studiert (erfolgreich 😉) Voreher hatte ich schon eine Ausbildung gemacht, die aber nichts mit Informatik zu tun hatte. Habe aber schon seit Kindheit ein großes Interesse an der EDV.
Vor dem Studium hatte ich ein wenig Erfahrung in C/C++, was ich mir selber begebracht habe.
Im Studium habe ich dann viele Themenbereichen der Informatik kennengelernt, die man im Selbststudium wahrscheinlich garnicht mitbekommt. Was man in einer Berufsausbildung Informatik an Themengebieten kennenlernt, kann ich nicht vergleichen.
Was ich allerdings sagen kann, dass man im Studium zwar viele Themengebiete kennenlernt, aber was man daraus macht ist das entscheidende. Durch eine Prüfung zu kommen ist das eine, aber das Wissen auch zu behalten, oder sinnvoll einzusetzen das andere. Überspitzt gesagt:
Wenn man sich neben dem Studium nicht mit der Materie auseinander setzt, bringt das Studium am Ende evtl. "nur" den Abschluß.

Ich habe im Studium einige Kommilitonen kennengelernt, die auch den Abschluß bekommen haben, aber heute noch nicht verstehen was der Unterschied zwischen einer Klasse und einem Objekt ist.

Über kurz oder lang, ein Studium ist auf jeden Fall sinnvoll, wenn man das richtige daraus macht.

gruß

Boris

26.07.2011 - 15:42 Uhr

Hallo,

ich bearbeite zur Zeit eine WPF-Anwendung mit Visual Studio 2010 Ultimate. Wenn ich meine Anwendung debuigge und nach dem Debuggen ins Studio zurückkehre, habe ich teilweise sehr lange Ladezeiten. (zwischen 5-20 Sekunden) Dies tritt alledings nur auf, wenn ich eine XAML-Datei im Fokus habe.

Ist das ein Bug, oder gibt es eine Einstellung mit der ich das unterdrücken kann?

Gruß

Boris

23.07.2011 - 23:11 Uhr

Hallo,

Warum nicht einfach ein Grid?

Das Canvas ist drinn, da UC2 über UC1 hinauswächst. Da es mit ClipToBounds ein paar Probleme geben kann ein Canvas. Siehe
ClipToBounds

Daher dann doch Behaviours? Ich werds mir mal anschauen.

Gruß

Boris

23.07.2011 - 13:01 Uhr

Hallo,

ich habe eine Anwendung mit verschiedenen UserControls. Ein UserControl (UC1) beinhaltet ein weiteres UserControl (UC2). UC2 wächst mit Hilfe von Margin über UC1 hinaus. (siehe Bild)
Ich möchte nun erreichen, dass UC2 immer in der Mitte des Window befindet.
Mein XAML sieht exemplarisch so aus:


<UserControl>
      <Canvas>
            <uc2:UserControl Width="100" Height="50" Margin="100,0,0,0"/>
       </Canvas>
</UserControl>

Wenn sich nun die Größe meines Window ändert, müsste sich das Margin mit ändern. Kann man sowas in XAML mit Hilfe irgendwelcher Bindigs lösen, oder muss ich das selbst Code-Behind berechnen lassen?

Gruß

Boris

21.07.2011 - 12:22 Uhr

Hallo,

wir nutzen in unserem Projekt den ScatterViewer aus dem Surface-SDK. Mein Kollege hat dazu die SDK installiert. Bei ihm funktioniert der ScatterViewer auch einwand frei.
Auf dem Scatter werden in unserem Projekt Bilder dargestellt.
Wenn ich die Anwendung starte gibt es keinerlei Fehlermeldungen, aber die Bilder werden nicht dargestellt.
Unterschied zwischen den beiden Rechner ist lediglich die vorhandene Installation des Surface SDK, bzw. die nicht vorhandene Installation.

Folgende DLLs liefern wir mit:

Microsoft.Surface.Presentation.Design.dll
Microsoft.Surface.Presentation.dll
Microsoft.Surface.Presentation.Generic.dll
Microsoft.Windows.Design.Extensibility.dll
Microsoft.Windows.Design.Interaction.dll

Weiß jemand was wir tun können, das der ScatterViewer funktioniert?

Gruß

Boris

20.07.2011 - 21:33 Uhr

Danke xxMUROxx, funktioniert einwandfrei. 🙂

20.07.2011 - 19:29 Uhr

Hallo,

wie im Titel beschrieben, möchte ich in einem Header Controls anordnen. Ich habe im Header einen TextBlock und zwei Buttons. Der TextBlock soll linksbündig sein, die beiden Buttons immer Rechts.
Bei mir ist es jetzt immer so, dass erst der Text und dann gleich beide Buttons kommen. Falls der Text kurz ist, und Leerraum über bleibt, befindet dieser sich Rechts. Dieser Leerraum soll aber zwischen Text und Buttons sein. Die Buttons also immer am rechten Rand des Headers. Kann mir damit bitte jemand helfen?

Mein Versuch:

                                <Expander IsExpanded="True" Style="{DynamicResource AdminExpanderStyle}" >
                                <Expander.Header>
                                    <DockPanel LastChildFill="True">
                                            <Button Content="Einladen" Style="{DynamicResource InviteUserBtnStyle}" DockPanel.Dock="Right" Height="20"/>
                                            <Button Height="20" DockPanel.Dock="Right" Style="{DynamicResource NewAlbumBtnStyle}"  />
                                            <TextBlock Text="{Binding Path=Name}" Style="{DynamicResource TextBlockStyle}" DockPanel.Dock="Left"/>
                                        </DockPanel>
                                </Expander.Header>

Gruß

Boris

18.07.2011 - 12:13 Uhr

Hmm, ich denke das sollte auch anders gehen.

Mit diesem Binding müsste ich doch das VM des übergeordneten Controls erreichen, oder nicht?

<Button Command="{Binding ElementName=NetAdminFrame, Path=DataContext.DeclineInvite}" CommandParameter="{Binding Path=NetID}">Ablehnen</Button>

Übergeordnetes Control:

<UserControl x:Class="NetAdminFrame.NAFrame" x:Name="NetAdminFrame"
...
        <StackPanel >
            <daco:NewNetUC x:Name="newNet" />
            <daco:IncomingInvitesUC x:Name="incInvUC" />
        </StackPanel>
...
18.07.2011 - 11:33 Uhr

Hiho,

ich habe ein Problem mit dem Binding von Commands mit Buttons in einer Liste.
Ich habe ein UserControl, welches die Liste beinhaltet, sowie ein Anwendung mit meinem VM.
Das UC bekommt eine List mit einer eigenen Datenklasse gebunden. Das Funktioniert auch soweit. Das UC beinhaltet, aber auch Buttons die an Commands gebunden werden. Ich weiß nun aber nicht wie ich das Commandbinding im XAML machen muss, da der eigentliche DataContext in dem Fall ja ein ListItem ist.

Hier mein UC:

<UserControl ...>
    <Grid>
        <Expander Header="{Binding Path=ExpHeader}" IsExpanded="False">
            <ItemsControl ItemsSource="{Binding Path=IncomingInvites}" x:Name="list" >
                <ItemsControl.ItemTemplate>
                    <DataTemplate >
                        <StackPanel Orientation="Horizontal">                        
                            <Label Content="{Binding Path=Invite}"/>
                            <Button Command="{Binding Path=DataContext.AcceptInvite}" CommandParameter="{Binding Path=NetID}">Annehmen</Button>
                            <Button Command="{Binding ElementName=NetAdminFrame, Path=DataContext.DeclineInvite}" CommandParameter="{Binding Path=AwengaNetID}">Ablehnen</Button>
                        </StackPanel>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
        </Expander>
    </Grid>
</UserControl>

Im Xaml sieht man zwei meiner gescheiterten Versuche die Commands zu binden. 😃

Mein VM:


...
        private List<IncomingInvite> incomingInvites = new List<IncomingInvite>();
        public List<IncomingInvite> IncomingInvites
        {
            get { return incomingInvites; }
            set
            {
                incomingInvites = value;
                NotifyPropertyChanged("IncomingInvites");
            }
        }
...
        RelayCommand declineInvite;
        public ICommand DeclineInvite
        {
            get
            {
                if (declineInvite == null)
                {
                    declineInvite = new RelayCommand(param => this.DeclineInviteMethod(param),
                        param => true);
                }
                return declineInvite;
            }
        }


        RelayCommand acceptInvite;
        public ICommand AcceptInvite
        {
            get
            {
                if (acceptInvite == null)
                {
                    acceptInvite = new RelayCommand(param => this.AcceptInviteMethod(param),
                        param => true);
                }
                return acceptInvite;
            }
        }
...

Kann mir jemand bitte weiterhelfen?

Gruß

Boris

02.07.2011 - 12:24 Uhr

Hiho,

WSDL ist doch im Prinzip nur XML. Kannst Du dein WSDL in ein XML-Document laden? Dort kannst Du die Nodes mit foreach durch gehen.

Gruß
Boris

01.07.2011 - 10:40 Uhr

Hiho,

Besser wäre hier allerdings das Ereignisprotokoll bei der Installation zu initialisieren.

Danke für die schnelle Antwort. Funktioniert. 🙂

Gruß

Boris

01.07.2011 - 10:11 Uhr

Hallo,

ich habe einen WindowsDienst geschrieben. Dieser läuft aber nicht auf jedem System. Auf manchen Systemen startet er ohne Probleme und verrichtet seine Arbeit.
Auf anderem System startet er nicht, und der JIT-Debugger gibt mir folgende Fehlermeldung:

Die Quelleigenschaft wurde nicht festgelegt, bevor in das Ereignisprotokoll geschrieben wurde.

Im Konstruktor des Dienstes versuche ich das Eventlog einzurichten. Es erscheint im Fehlerfall auch nicht in der Verwaltung.
Falls es relevant ist, dies passiert auf einem Windows7-System. Auf einem anderen Windows7 läuft der Dienst allerdings.

        public GwhService()
        {
            try
            {
                InitializeComponent();

                if (!System.Diagnostics.EventLog.SourceExists("KliPa"))
                {
                    System.Diagnostics.EventLog.CreateEventSource("KliPa", "GwhSLog");
                }

                eventLogGwhS.Source = "KliPa";
                eventLogGwhS.Log = "GwhSLog";
                eventLogGwhS.WriteEntry(errCounter++ + " GwhService ", EventLogEntryType.FailureAudit);
            }
            catch (Exception ex)
            {
                eventLogGwhS.WriteEntry(errCounter++ + " GwhService " + ex.ToString(), EventLogEntryType.Error);
            }
        }

Ist das irgendein Rechte-Problem und wie kann ich diesem entgegen wirken.

Gruß

Boris

27.06.2011 - 08:17 Uhr

Hallo,

sowas kannst Du mit einem ControlTemplate lösen. Mit dem dazugehörigen Trigger kannst Du dann auf IsMouseOver reagieren.

gruß

Boris

26.06.2011 - 17:48 Uhr

Hallo Winsharp93,

dein Tip war Gold wert. 🙂 Mit ClipToBounds hat es leider nicht auf anhieb funktioniert, aber google hat mich direkt zu Dr. WPF geführt. Die Lösung heißt Canvas drumm.

Gruß

Boris

26.06.2011 - 14:52 Uhr

Hiho,

wie im Titel beschrieben möchte ich wissen, ob ein UserControl, dass in einem anderen UserControl liegt über dieses hinauswachsen kann?
Ich habe ein Bild angehängt, damit man besser versteht was ich meine.

PseudoXaml:


<Window ...>
    <UC1:Usercontrol1 Height=100 Width=50/>

</Window>

<UserControl x:Name="UserControl1" ...>
    <UC2:UserControl2 Height=50 Width=200/>
</UserControl>

UserControl 1 soll dabei seine Größe von 50x100 beibehaltetn und nicht mitwachsen, wenn UserControl2 größer ist.

Gruß

Boris

23.06.2011 - 16:16 Uhr

Hmm.

Und wie greif ich im ViewModel dann auf das aktuelle Item zu?

gruß

Boris

23.06.2011 - 15:55 Uhr

Hiho,

Problem dabei ist, das so ein ListBoxItem ein UserControl ist. Und wenn man dann z.B. auf einen Button dieses Controls klickt, dieses ListBoxItem nicht als Selektiert gilt, daurch komm ich dann auch nicht an die ID, da kein Item als selektiert gilt.

gruß

Boris