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>
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
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.
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
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 ?
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}" />
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
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
Was passiert, wenn du es so schreibst:
<Label Content="{Binding PriceTag}" />
Weeks of programming can save you hours of planning
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 😃