Autor Beitrag
mat2C#
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mi 29.01.14 18:19 
Liebe Entwickler,

Ich versuchte mich an OxyPlot, leider scheitert es schon am Einführungsbeispiel:

www.oxyplot.org/doc/HelloWpf.html

Ich habe folgende Teile:
MainWindowModel.xaml.cs

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
using System;
using OxyPlot;
using OxyPlot.Series;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication1
{
    /// <summary>
    /// Interaktionslogik für MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }
    public class MainViewModel
    {
        public MainViewModel()
        {
            this.MyModel = new PlotModel("Example 1");
            this.MyModel.Series.Add(new FunctionSeries(Math.Cos, 0100.1"cos(x)"));
        }

        public PlotModel MyModel { get; private set; }
    }
}
MainWindowModel.xaml
ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:oxy="http://oxyplot.codeplex.com"
        xmlns:local="clr-namespace:WpfApplication1"
        Title="Example 1 (WPF)" Height="350" Width="525">
    <Window.DataContext>
        <local:MainViewModel/>
    </Window.DataContext>
    <Grid>
        <oxy:Plot Model="{Binding MyModel}"/>
    </Grid>
</Window>


Dabei kommt die Fehlermeldung:

Der Name "MainViewModel" ist im Namespace "clr-namespace:WpfApplication1" nicht vorhanden. [...]\visual studio 2013\Projects\WpfApplication1\WpfApplication1\MainWindow.xaml

Ich verstehe nicht warum die Klasse nicht gefunden wird...

Sobald ich die verursachenden Zeilen entferne:
ausblenden XML-Daten
1:
2:
3:
<Window.DataContext
 <local:MainViewModel/
</Window.DataContext>


kommt der Fehler:

Die Datei oder Assembly "System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes" oder eine Abhängigkeit davon wurde nicht gefunden. The system cannot find the file specified. [...]\visual studio 2013\Projects\WpfApplication1\WpfApplication1\MainWindow.xaml

Ich befürchte es ist ein peinlicher Anfängerfehler aber das passt zum momentanen Bildungsstand.
Die Dokumentation zu OxyPlot ist leider noch dünn, darum fand ich dort nichts.


Ich nutze:
VS Express 2013
OxyPlot Version 2014.1.227.1
Win7
.NET 4.5


Mein Hintergrund:

Ich bin dabei mich in die C#-Welt vorzutasten.
Ich komme aus der Matlab-Ecke und möchte mich in einer "richtigen" Programmiersprache vertiefen.
Mittels C++-Kurs (schon eine Weile her) und Channel9 habe ich mir C#-Grundkenntnisse angeeignet und möchte nun diese anhand eines kleien Projektes umsetzen.

Zur Untersuchung von Messdaten möchte ich eine kleine Anwendung schreiben die Kurven visualisieren kann. Diese können relativ gross sein, darum OxyPlot.


Jede Hilfe ist willkommen!

Gruss,
mat2C#

Moderiert von user profile iconChristian S.: Color- durch Syntax-Tags ersetzt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 29.01.14 18:56 
Hallo und :welcome:

du scheinst jetzt die Dateien selber erzeugt zu haben. Läuft denn der Originalcode unter
Zitat:
The source code can be found in Documentation\Examples\WpfApplication1
?

Ansonsten erzeuge mal getrennt die Dateien (anstatt beides in einer C#-Datei):
MainWindow.xaml.cs
MainWindow.xaml
MainWindowModel.cs
mat2C# Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 30.01.14 14:03 
Hallo
Danke für den freundlichen Empfang und die (sehr) schnelle Hilfe :-)

Ich habe getan was Du vorgeschlagen hast, MainViewModel.cs als eigene Datei:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
namespace WpfApplication1
{
    using System;

    using OxyPlot;
    using OxyPlot.Series;

    public class MainViewModel
    {
        public MainViewModel()
        {
            this.MyModel = new PlotModel("Example 1");
            this.MyModel.Series.Add(new FunctionSeries(Math.Cos, 0100.1"cos(x)"));
        }

        public PlotModel MyModel { get; private set; }
    }
}


Und siehe da, es hat geklappt :-)

Der Fehler ist verschwunden und es öffnet sich sogar ein Fenster mit der Sinuskurve.
Aber, wie immer bei Antworten, es entstehen natürlich neue Fragen:
Warum half das? Wieso wird es ausserhalb des *.xaml.cs plötzlich vom Compiler erkannt?

Gruss
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 30.01.14 14:58 
Schön, daß es jetzt läuft.

Aber zu der Fehlermeldung kann ich nur sagen: WPF - ein Mysterium...

Das war aber einfach nur geraten, da man nach dem MVVM-Modell einfach View-, ViewModel- und Model-Klassen voneinander trennt (d.h. mindestens in eigene Dateien, üblicherweise sogar die Models in einer eigenen Assembly (DLL)).
mat2C# Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 31.01.14 08:23 
Ok, dann werde ich mich mal in dieser Richtung etwas schlau machen.

Naja, rund läuft's noch nicht ganz: Im XAML editor wird die alte Fehlermeldung noch immer angezeigt:

Die Datei oder Assembly "System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes" oder eine Abhängigkeit davon wurde nicht gefunden. The system cannot find the file specified. [...]\visual studio 2013\Projects\WpfApplication1\WpfApplication1\MainWindow.xaml

aber das muss ich zuerst einmal selber überprüfen. Aber wenn WPF wirklich so eine Hexenlandschaft ist, dann blüht mir dort noch was... ;-)

Besten Dank und schönen Gruss