Ich würde gerne eine in ihrem eigenen Command
als CommandParameter
zu meinem ViewModel übergeben. Ich weiß, wie dies vom Code hinter z.B. ...Wie übermittele ich den Button als CommandParameter von XAML in einer Xamarin.Forms-Seite?
XAML(mit den meisten Eigenschaften verpassten der Kürze halber out)
<Button x:Name="myButton"
Text="My Button"
Command="{Binding ButtonClickCommand}"/>
XAML.cs
public partial class MyTestPage
{
public MyTestPage()
{
InitializeComponent();
myButton.CommandParameter = myButton;
}
}
Ansichtsmodell
public class MyViewModel : ViewModelBase
{
public MyViewModel()
{
ButtonClickCommand = new Command(
(parameter) =>
{
var view = parameter as Xamarin.Forms.Button;
if (view != null)
{
// Do Stuff
}
});
}
public ICommand ButtonClickCommand { get; private set; }
}
... ABER ist es möglich, die CommandParameter
im XAML selbst zu deklarieren? Oder mit anderen Worten, wie lautet die Bindesyntax, um den Parameter auf die Schaltfläche selbst zu setzen?
<Button x:Name="myButton"
Text="My Button"
Command="{Binding ButtonClickCommand}"
CommandParameter="{[WHAT WOULD GO HERE]}"/>
btw habe ich schon CommandParameter="{Binding RelativeSource={RelativeSource Self}}"
versucht und das hat nicht funktioniert.
Danke,
Warum brauchen Sie die Schaltfläche in Ihrer VM? –
Hallo @Alexanderson. Ja, ich bin auch nicht besonders scharf darauf. Wir führen Xamarin.Forms in ein bestehendes Xamarin iOS-Projekt ein. Experimentieren Sie einfach mit Methoden, wie Sie einen nativen UIPopoverController von einer Xamarin.Form-Seite anzeigen lassen können. Es gibt keine Forms-Unterstützung für Popups, also schaue nur im Moment um es herum und eine der Hürden ist, dass ich wissen muss, welches UIElement das Popup von ... anzeigt, also die Taste weitergibt. Wie gesagt ... irgendwie fühlt sich hokey. Ich werde deinen Vorschlag unten versuchen. Danke –
Wie für Popups überprüfen Sie die Implementierung von 'ContentPage.DisplayActionSheet (...)' - wenn das Aktionsblatt nicht genug ist, können Sie den Code, der es zeigt, zurückentwickeln. Und wenn Sie die Button-Referenz abrufen müssen, müssen Sie immer noch die UIButton-Referenz finden. Sie werden mit einem benutzerdefinierten Renderer besser –