WPF-MVVM-switch-Benutzersteuerelemente

Ich bin neu zu MVVM und WPF-aber ich weiß, was Los ist in MVVM. Ich habe ein problem mit der Umschaltung zwischen user-controls im Hauptfenster. In meiner app habe ich:
MainWindow.xaml mit log 2 links: alle Anzeigen und Erstellen neue. Natürlich habe ich das ViewModel. Ich habe 2 weitere Benutzersteuerelemente: ShowAll, und Erstellen Sie mit ViewModels und die gesamte Logik (hinzufügen von Daten etc). Wie kann ich anzeigen Formular anlegen, wenn ich auf den link neu Erstellen oder zeigen Sie alle, wenn ich auf ShowAll?

In windowForms ich nur ausblenden, UC, allerdings sind hier hier ist kein code hinter 🙂

Mein MainWindow.xaml:

<Window x:Class="Test.Views.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="300" Width="300">
    <Grid>
        <StackPanel>
            <TextBox Text="{Binding Name}"/>
            <Button Content="Change" Command="{Binding ChangeCommand}"/>
        </StackPanel>
    </Grid>
</Window>

Meine MainWindowViewModel:

class MainWindowViewModel : BaseViewModel
{
    private Person _person;
    private BaseCommand _changeCommand;

    public MainWindowViewModel()
    {
        _person = new Person();
    }

    public string Name
    {
        get
        {
            return _person.Name;
        }
        set
        {
            if (_person.Name != value)
                _person.Name = value;
            OnPropertyChanged(() => Name);
        }
    }

    public ICommand ChangeCommand
    {
        get
        {
            if (_changeCommand == null)
                _changeCommand = new BaseCommand(() => change());
            return _changeCommand;
        }
    }

    private void change()
    {
        _person = new Person();
        Name = _person.Imie;
    }
}

Erstellen und ShowAll es ist kein code. In der xaml-nur ein Etikett, VM ist leer. Nur für den test.

Danke für die Hilfe!

poste den relevanten code und XAML. BTW MVVM bedeutet nicht, keine code-behind. MVVM bedeutet nicht, setzen Sie business Logik in der code-behind.

InformationsquelleAutor Chris | 2013-10-21

Schreibe einen Kommentar