как привязать кнопку всплывающей страницы к свойству команды viewmodel в формах xamarin - PullRequest
0 голосов
/ 18 марта 2019

Я новичок в формах MVVM и xamarin. Я хочу реализовать пользовательские всплывающие окна в mvvm и следующий мой код Моя модель просмотра:

public class PopupVM
{
 public ICommand CancelCommand => new Command(async () =>{await 
 Application.Current.MainPage.Navigation.PopModalAsync();});
}

My Popuppage Xaml: `

<pages:PopupPage.Animation>
    <animations:ScaleAnimation DurationIn="400"
    DurationOut="300"
    EasingIn="SinOut"
    EasingOut="SinIn"
    HasBackgroundAnimation="True"
    PositionIn="Center"
    PositionOut="Center"
    ScaleIn="1.2"
    ScaleOut="0.8" />
</pages:PopupPage.Animation>

<Grid Margin="12"
Padding="24"
BackgroundColor="White"
HorizontalOptions="Center"
VerticalOptions="Center">
    <Grid.RowDefinitions>
    <RowDefinition Height="*"/>
    <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <StackLayout Orientation="Vertical">
        <Picker Grid.Row="0" Grid.Column="0">
            <Picker.Items>
            <x:String>....</x:String>
            </Picker.Items>
        </Picker>

    <StackLayout Orientation="Vertical" Grid.Column="0" Grid.Row="1">
        <StackLayout Orientation="Horizontal" >
            <Label Text="A"/>**strong text**
            <Picker>
            <Picker.Items>
            <x:String>Item1</x:String>
            <x:String>Item2</x:String>
            <x:String>Item3</x:String>
            </Picker.Items>
            </Picker>
        </StackLayout>

        <StackLayout Orientation="Horizontal" >
            <Label Text="B"/>
            <Picker>
            <Picker.Items>
            <x:String>....</x:String>
            </Picker.Items>
            </Picker>
        </StackLayout>

        <StackLayout Orientation="Horizontal" >
            <Label Text="C"/>
            <Picker>
            <Picker.Items>
            <x:String>....</x:String>
            </Picker.Items>
            </Picker>
        </StackLayout>
    </StackLayout>
        <Button Text="Ok"/>
        <Button Text="Cancel" x:Name="cnclBtn" />
    </StackLayout>
</Grid>

Моя страница Popupxaml.cs:

public partial class MyPopupPage 
{
static PopupVM vm;
public MyPopupPage ()
{
    InitializeComponent ();

    if (vm==null)
    { vm = new PopupVM(); }
    BindingContext = vm;
}
}

Я не понимаю, где я совершаю ошибку. а также мне нужно пользовательское всплывающее окно, а не предупреждение по умолчанию

1 Ответ

0 голосов
/ 18 марта 2019
<Button Text="Cancel" x:Name="cnclBtn" Command="{binding CancelCommand}" />

Для получения дополнительной информации с командами и связыванием перейдите к this

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...