Laden...

WPF GUI im Designer nicht sichtbar: "Invalid Markup"

Erstellt von mankingwwe vor 6 Jahren Letzter Beitrag vor 6 Jahren 3.814 Views
M
mankingwwe Themenstarter:in
39 Beiträge seit 2018
vor 6 Jahren
WPF GUI im Designer nicht sichtbar: "Invalid Markup"

Hey hat jemand eine Ahnung warum ich die Gui nicht sehen kann? [Das Programm funktioniert beim Ausführen]



<Window x:Class="Parking.ParkingMeter.Views.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:viewModels="clr-namespace:Parking.ParkingMeter.ViewModels"
        mc:Ignorable="d"
        Title="ParkingMenu" Height="300" Width="300">
    <Window.Resources>
        <BooleanToVisibilityConverter x:Key="BoolToVis"/>
    </Window.Resources>
    <Grid>
        <StackPanel>
            <Label>Welcome to ParkingMenu. Please pull a Ticket!</Label>
            <GroupBox Header="Preis">
                <Label Content="{Binding Path=(viewModels:MainViewModel.PriceTag)}" />
            </GroupBox>
            <GroupBox Header="Ticket">
                <StackPanel Orientation="Vertical">
                    <StackPanel Orientation="Horizontal" Margin="0,0,0,10">
                        <Label>Parkdauer in Stunden:</Label>
                        <TextBox Text="{Binding Path=(viewModels:MainViewModel.DurationHours), Mode=TwoWay}" MinWidth="120"/>
                    </StackPanel>
                    <Button Command="{Binding Path=(viewModels:MainViewModel.PullTicketCommand)}" CommandParameter="{Binding Path=(viewModels:MainViewModel.DurationHours)}">Ticket lösen</Button>
                    <StackPanel>
                        <TextBlock TextWrapping="Wrap" Visibility="{Binding Path=(viewModels:MainViewModel.HasCurrentTicket), Converter={StaticResource BoolToVis}, FallbackValue=Hidden}" Text="{Binding Path=(viewModels:MainViewModel.CurrentTicketDisplay)}" />
                    </StackPanel>
                </StackPanel>
            </GroupBox>
        </StackPanel>
    </Grid>
</Window>


5.658 Beiträge seit 2006
vor 6 Jahren

Hi mankingwwe,

was steht denn in der Fehlerliste? Ansonsten ist der eingebaute Designer nicht wirklich verwendbar, ich nutze eigentlich nur den X(A)ML-Editor für die Erstellung der Oberflächen.

Weeks of programming can save you hours of planning

709 Beiträge seit 2008
vor 6 Jahren

Hallo mankingwwe,
ist das ViewModel static?
Eigentlich sollte es im DataContext des Fensters sein.
Dann kannst du dir beim Binding das viewModels:MainViewModel sparen, sodass du statt viewModels:MainViewModel.PriceTag nur noch PriceTag schreiben brauchst.

Das Grid als oberstes Layout-Element ist auch überflüssig.

5.658 Beiträge seit 2006
vor 6 Jahren

Eigentlich sollte es im DataContext des Fensters sein.

Siehe dazu die Anleitung in [Artikel] MVVM und DataBinding

Weeks of programming can save you hours of planning

M
mankingwwe Themenstarter:in
39 Beiträge seit 2018
vor 6 Jahren


using Parking.ParkingMeter.ViewModels;

namespace Parking.ParkingMeter.Views
{
    /// <summary>
    ///     Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow
    {
        /// <summary>   Default constructor. </summary>
        public MainWindow()
        {
            InitializeComponent();
        }

        /// <summary>   Sets the view model. </summary>
        /// <value> The view model. </value>
        [Unity.Attributes.Dependency]
        public MainViewModel ViewModel
        {
            set => DataContext = value;
        }
    }
}


Ist doch im Data Context ?

D
985 Beiträge seit 2014
vor 6 Jahren

Mag ja sein, dass da was im DataContext ist, aber das wogegen du das Binding erstellt hast, greift darauf nicht zu.

Wenn, dann würde es aussehen wie

<Label Content="{Binding Path=PriceTag}" />
5.658 Beiträge seit 2006
vor 6 Jahren

Das ist wirklich nicht so kompliziert, und steht auch alles gleich im ersten Abschnitt von [Artikel] MVVM und DataBinding

Wenn etwas nicht funktioniert wie gewünscht, dann gehe die Hinweise im Abschnitt Debugging durch.

Weeks of programming can save you hours of planning

1.029 Beiträge seit 2010
vor 6 Jahren

Hi,

du musst die Fehlermeldung aus deiner Fehlerliste nennen - sonst kann man nicht sagen was los ist...

@Sir Rufo:
Warum sollte seine Schreibweise nicht darauf zugreifen? Das ist lediglich eine Methode anzugeben was das für ein Typ ist, der da gebunden wird.

LG

M
mankingwwe Themenstarter:in
39 Beiträge seit 2018
vor 6 Jahren

falls ihr das mit "fehlerliste" meint

M
mankingwwe Themenstarter:in
39 Beiträge seit 2018
vor 6 Jahren

Beim kompilieren gibts keine Fehler..

5.658 Beiträge seit 2006
vor 6 Jahren

Was passiert, wenn du es so schreibst:

<Label Content="{Binding PriceTag}" />

Weeks of programming can save you hours of planning

M
mankingwwe Themenstarter:in
39 Beiträge seit 2018
vor 6 Jahren

Kompiliert nach wie vor ohne Fehlermeldung dann

M
mankingwwe Themenstarter:in
39 Beiträge seit 2018
vor 6 Jahren

Alles gut habe den Fehler gefunden 😃
Habe überall diesen langen Pfad rausgenommen und den kurzen eingefügt und schon kann ich es wieder sehen 😃
Danke Sparkle und die anderen 😃