Laden...

Forenbeiträge von Zakant Ingesamt 5 Beiträge

07.08.2013 - 17:33 Uhr

Moin,

wpf bringt mich mitlerweile zum absoluten Verzweifeln...
Um das Binding weitere Elemente im MVVM Pattern zu erleichtern, setze ich den DataContext das Windows auf die Entsprechende ViewModel Klasse. Das ganze sieht dann etwa so aus


<Window x:Class="EntwicklerTagebuch.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:my="clr-namespace:EntwicklerTagebuch">

    <Window.DataContext>
        <my:LoginViewModel />
    </Window.DataContext>

</Window>

Der Fehler ist > Fehlermeldung:

Der Name "LoginViewModel" ist im Namespace "clr-namespace:EntwicklerTagebuch" nicht vorhanden.

(Ich hatte einen ähnlichen Fehler vor einiger Zeit hier schonmal, aber diesmal scheint es was anderes zu sein X( )

Die Klasse exestiert auf jeden Fall. Und das aller komischte: Das Projekt kompeliert auch korekt und wird ausgefürt. Allerdings fehlen mir alle Desing Fetaures, da diese durch den Fehler lahmgelegt werden... Sehr ärgerlich. Ich kann das Projekt gerne auch zum Download bereitstellen, sollte dies helfen.

Vielleicht noch ganz Interessant: IDE ist Visual Studio 2012 Professional, Framework ist 3.5 AnyCPU. Ebenfals noch komisch: VS selber stellt mir die Klasse zur auswahl, wenn ich automatisch einen DataContext hinzufügen möchte. Der erzeugte Code lässt sich allerdings nicht komplieren.

Hat irgendjemand eine Idee, was da los sein könnte?

Gruß Christian

14.07.2013 - 17:58 Uhr

Danke für all die Antworten.
Mitlerweile hab ich das ganze auch zum laufen bekommen, allerdings ohne eine AHnung, wieso und warum oder überhaupt... Daher leider auch von mir keine Lösung, die das Problem behoben hat. In einem zweiten Testprojekt funktionierte der Teil auf jeden Fall 😉
Mal so ganz nebenbei: Kennt jemand eine gute Quelle für wpf Binding? Also nicht unbedingt "von-null-auf" tutorials, sondern ehr referenzen?

Gruß Christian

13.07.2013 - 17:12 Uhr

Danke, für den Tipp, das hatte ich allerdings schonmal probiert und es ändert leider an dem Problem nix, bis auf die Tatsache, dass die Fehler meldung zu:> Fehlermeldung:

Der Name "Settings" ist im Namespace "clr-namespace:CSCore_Test" nicht vorhanden. wird...

Gruß Christian

13.07.2013 - 16:32 Uhr

Moin, ahh, gut zu wissen, aber das Projekt hat als Ziel Framework 4.5 eingestellt, also sollte da nicht das Problem liegen, soweit ich das verstehe, oder?

13.07.2013 - 15:51 Uhr

Moin,

ich habe mich vor einiger Zeit mal an WPF herangewagt und bin dann zwangsläufig auch auf das Databidning gestoßen, was soweit auch recht gut funktioniert.

Nun habe ich allerdings das Problem, dass ich gerne einige Steuerelemente an eine Singelton Klasse binden möchte, die die Aktuellen Einstellungen repräsentiert.

Die Namespace Imports:


<Window x:Class="CSCore_Test.frmOption"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="CSCore_Test"
        Title="Optionen" Height="300" Width="300" Loaded="Window_Loaded">

Und das Steuerlement:


<CheckBox Grid.Row="1" Name="cbRandom" Content="Zufällige Wiedergabe" Checked="{Binding RandomPlayback, Source={x:Static local:Settings.Instance}}" />

Der Fehler, der geworfen wird ist:> Fehlermeldung:

Der Name "Settings" ist im Namespace "CSCore_Test" nicht vorhanden.

Der Vollständigkeit halber hier einmal die Klasse "Settings" 😉


namespace CSCore_Test
{
    public class Settings : INotifyPropertyChanged
    {
        //Singelton
        private static Settings _instance;

        public static Settings Instance
        {
            get
            {
                if (_instance == null)
                    _instance = new Settings();
                return _instance;
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;
        private void OnPropertyChanged(string name)
        {
            var myevent = PropertyChanged;
            if (myevent != null)
                myevent(null, new PropertyChangedEventArgs(name));
        }

        private bool _random = false;
        public bool RandomPlayback
        {
            get
            {
                checkfirstAccess();
                return _random;
            }
            set
            {
                _random = value;
                OnPropertyChanged("RandomPlayback");
            }
        }
    }
}

So, ich hoffe, ich hab mich einigermaßen verständlich ausgedrückt und auch nichts Wichtiges vergessen oder hab ein Thema aufgegriffen, dass hier schon 1000 diskutiert wurde😉
In diesem Sinne schönes Wochenende
Gruß Christian