Ausblenden Flyout auf die Schaltfläche klicken (DelegateCommand)

Ich bin erstellen einer Windows Store-app, und ich habe ein flyout-Menü, das wie folgt aussieht:
Ausblenden Flyout auf die Schaltfläche klicken (DelegateCommand)

Den Flyout richtig funktioniert, und ich bin in der Lage, eine neue Adresse hinzufügen, wenn ich auf den "Hinzufügen" -Button. Das problem ist, ich möchte in der Lage sein zu verstecken Flyout als gut. Meine DelegateCommand ist in der ViewModel, so habe ich nicht einen Verweis auf die eigentliche View Elemente.

Ich habe versucht, die änderung der DelegateCommand zu nehmen, einen parameter, etwa so:

public DelegateCommand<object> AddAddressCommand
{
    get { return new DelegateCommand<object>(AddAddress, CanAddAddress); }
}

public void AddAddress(object parameter)
{
    if (_isEditing)
    {
        NewAddress.PayeeId = CurrentPayee.Id;
        _addressRepository.InsertAsync(NewAddress);
    }
    CurrentPayee.Addresses.Add(NewAddress);
    NewAddress = new Address();

    //TODO: hide Flyout
}

Und in meinem XAML, ich versuche zum bestehen einer CommandParameter zu den DelegateCommand etwa so:

<Button Content="Add" 
        Command="{Binding AddAddressCommand}"
        CommandParameter="{Binding RelativeSource={RelativeSource Self}}"
        HorizontalAlignment="Center" />

Wenn ich pass {RelativeSource Self} erhalte ich einen Verweis auf die Button wie erwartet, aber ich habe nicht in der Lage zu verweisen, etwas anderes auf den Baum. Die "Hinzufügen" - Button ist ein Kind der Flyout, die verbunden ist, um die "Adresse Hinzufügen" AppBarButton.

Ideal, ich könnte passieren in einem Verweis auf die Flyout direkt, oder die AppBarButton, so dass ich anrufen kann Flyout.Hide() wenn ich auf die Schaltfläche "Hinzufügen"`.

Ich habe versucht Einstellung der x:Name des AppBarButton und die Flyout und referenzieren Sie diese in der CommandParameter etwa so:

CommandParameter="{Binding ElementName=AddAddressFlyout}"

und in beiden Fällen, mein parameter ist null. Ist es möglich, dies zu erreichen, mit gerade Datenbindung, oder werde ich hinzufügen, eine Art von Behaviors?

InformationsquelleAutor dub stylee | 2015-02-26
Schreibe einen Kommentar