Здравствуйте, я новичок в разработке приложений с помощью форм xamarin, у меня есть экран с тремя текстами редактирования, когда я щелкаю текст редактирования клиента, он открывает новый экран со списком элементов, когда я возвращаюсь или нажимаю элементкнопка на предыдущих экранах исчезает.
Вот URL-адреса изображения:
Здесь идеально подходят кнопки
экран списка элементов
Кнопка исчезает при нажатии элемента или назад
Вот полный код:
Это основной файл заказа на добавление
public class AddOrderPageModel : BaseEntryPageModel
{
public AddOrderPageModel(OrderDataModel order, bool isEditable)
{
this.order = order;
this.isEditable = isEditable;
}
public string Client
{
get
{
return this.client;
}
set
{
if (this.client != value)
{
this.client = value;
this.OnPropertyChanged("Client");
}
}
}
public ICommand SearchClientCommand
{
get
{
return new Command(this.OnSearchClientCommand);
}
}
private void OnSearchClientCommand(object obj)
{
refreshOrder = false;
PartyListPageModel pageModel = new PartyListPageModel();
pageModel.PartySelected = this.ClientSelected;
NavigationHelper.PushOnMainNavigation(new PartyListPage(pageModel));
}
}
Вот класс модели списка участников:
public PartyListPage(PartyListPageModel model)
{
try
{
this.BindingContext = model;
model.CurrentPage = this;
this.InitializeComponent();
this.Appearing += model.Init;
this.ListView.ItemSelected += model.OnItemSelected;
txtSearch.TextChanged += model.TxtSearch_TextChanged;
SetTapGestureEventToSearchImage();
}
catch (Exception) { throw; }
}
// And some methods
Страница списка участников xaml:
<?xml version="1.0" encoding="UTF-8"?>
<basepage:BasePage
xmlns ="http://xamarin.com/schemas/2014/forms"
xmlns:x ="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class ="Biocorp.AppClasses.PagesAndViewModels.Party.PartyList.PartyListPage"
xmlns:basepage="clr-namespace:Biocorp.AppClasses.PagesAndViewModels.Base;assembly=Biocorp"
xmlns:i18n ="clr-namespace:Biocorp;assembly=Biocorp"
xmlns:rendered="clr-namespace:Biocorp.AppClasses.Rendered;assembly=Biocorp">
<ContentPage.Content>
<RelativeLayout
HorizontalOptions="Fill"
BackgroundColor ="White">
<RelativeLayout
VerticalOptions ="Fill"
HorizontalOptions="Fill">
<RelativeLayout.HeightRequest>
<OnPlatform x:TypeArguments="x:Double">
<On Platform="Android">50</On>
<On Platform="iOS">100</On>
</OnPlatform>
</RelativeLayout.HeightRequest>
<rendered:BaseButton
IsEnabled ="false"
Text =""
BackgroundColor ="White"
BorderRadius ="2"
BorderWidth ="1"
RelativeLayout.XConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0, Constant=5}"
RelativeLayout.YConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0, Constant=5}"
RelativeLayout.WidthConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1, Constant=-10}"
RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=1, Constant=-10}" />
<StackLayout
Orientation ="Horizontal"
Spacing ="5"
RelativeLayout.XConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0, Constant=5}"
RelativeLayout.YConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0, Constant=5}"
RelativeLayout.WidthConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1, Constant=-10}"
RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=1, Constant=-10}">
<StackLayout
Orientation ="Vertical"
Spacing ="0"
Padding ="0,0,0,0"
VerticalOptions ="Fill"
HorizontalOptions="End"
WidthRequest ="40">
<Image
Source ="ic_back"
Aspect ="AspectFit"
WidthRequest ="15"
HeightRequest ="15"
VerticalOptions ="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
<StackLayout.GestureRecognizers>
<TapGestureRecognizer
Command="{Binding BackCommand}" />
</StackLayout.GestureRecognizers>
</StackLayout>
<StackLayout
Orientation ="Vertical"
Spacing ="0"
Padding ="5,5,15,0"
VerticalOptions ="Fill"
HorizontalOptions="FillAndExpand">
<rendered:BaseEntry
Text ="{Binding SearchText}"
x:Name ="txtSearch"
Placeholder ="{i18n:Translate App_Search}"
HorizontalOptions="FillAndExpand"
VerticalOptions ="FillAndExpand"
HeightRequest ="40"
BackgroundColor ="Transparent"
FontSize ="14"
TextColor ="Black"
FontAttributes ="None">
</rendered:BaseEntry>
</StackLayout>
<StackLayout
Orientation ="Vertical"
Spacing ="0"
Padding ="0,0,0,0"
VerticalOptions ="Fill"
HorizontalOptions="End"
x:Name ="slSearch"
WidthRequest ="40">
<Image
Source ="ic_search_blue"
Aspect ="AspectFit"
WidthRequest ="15"
HeightRequest ="15"
VerticalOptions ="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
</StackLayout>
</StackLayout>
</RelativeLayout>
<ListView
x:Name ="listView"
SeparatorVisibility ="None"
ItemsSource ="{Binding PartyList}"
BackgroundColor ="{StaticResource GrayLightBackground}"
HasUnevenRows ="false"
RowHeight ="74"
VerticalOptions ="FillAndExpand"
RelativeLayout.XConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0, Constant=0}"
RelativeLayout.YConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0, Constant=74}"
RelativeLayout.WidthConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1, Constant=0}"
RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=1, Constant=-74}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout
Orientation ="Vertical" >
<StackLayout
Orientation ="Horizontal"
HorizontalOptions="FillAndExpand"
VerticalOptions ="CenterAndExpand"
HeightRequest ="52"
Padding ="10"
BackgroundColor ="White">
<StackLayout
Orientation ="Vertical"
HorizontalOptions="StartAndExpand"
BackgroundColor ="White">
<rendered:BaseLabel
Text ="{Binding PartyName}"
HorizontalOptions="StartAndExpand"
VerticalOptions ="Fill"
Style ="{StaticResource RowStyle}" />
<StackLayout
Padding ="0,5"
Orientation ="Horizontal">
<rendered:BaseLabel
Text ="{i18n:Translate PartyList_PartyType}"
HorizontalOptions="Start"
VerticalOptions ="Fill"
Style ="{StaticResource RowStyle}" />
<rendered:BaseLabel
Text ="{Binding PartyType}"
HorizontalOptions="Center"
VerticalOptions ="Fill"
Style ="{StaticResource RowStyle}" />
</StackLayout>
</StackLayout>
<rendered:BaseLabel
Text ="{Binding LocationDescription}"
HorizontalOptions="End"
VerticalOptions ="CenterAndExpand"
Style ="{StaticResource RowStyle}" />
</StackLayout>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</RelativeLayout>
</ContentPage.Content>
</basepage:BasePage>
Добавить страницу заказа xaml:
<?xml version="1.0" encoding="UTF-8"?>
<basepage:BasePage
xmlns ="http://xamarin.com/schemas/2014/forms"
xmlns:x ="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class ="Biocorp.AppClasses.PagesAndViewModels.Order.AddOrderPage"
xmlns:basepage ="clr-namespace:Biocorp.AppClasses.PagesAndViewModels.Base;assembly=Biocorp"
xmlns:i18n ="clr-namespace:Biocorp;assembly=Biocorp"
xmlns:rendered ="clr-namespace:Biocorp.AppClasses.Rendered;assembly=Biocorp"
NavigationPage.HasNavigationBar="true"
Title ="{i18n:Translate AddOrder_Order}">
<ContentPage.Content>
<RelativeLayout
HorizontalOptions="Fill">
<ScrollView
RelativeLayout.XConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0, Constant=0}"
RelativeLayout.YConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0, Constant=0}"
RelativeLayout.WidthConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1, Constant=0}"
RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=1, Constant=-53}">
<StackLayout
Orientation ="Vertical"
Spacing ="0"
Padding ="0,7,0,7"
VerticalOptions ="Start"
HorizontalOptions="Fill">
<RelativeLayout
HeightRequest ="64"
HorizontalOptions="Fill">
<rendered:BaseButton
IsEnabled ="false"
Text =""
BackgroundColor ="{StaticResource GrayTextBackground}"
BorderRadius ="5"
RelativeLayout.XConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0, Constant=14}"
RelativeLayout.YConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0, Constant=7}"
RelativeLayout.WidthConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1, Constant=-28}"
RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=1, Constant=-14}" />
<StackLayout
Orientation ="Horizontal"
Spacing ="5"
RelativeLayout.XConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0, Constant=14}"
RelativeLayout.YConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0, Constant=7}"
RelativeLayout.WidthConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1, Constant=-28}"
RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=1, Constant=-14}">
<StackLayout
Orientation ="Vertical"
Spacing ="0"
Padding ="15,5,15,5"
VerticalOptions ="Fill"
HorizontalOptions="FillAndExpand">
<rendered:BaseLabel
Text ="{i18n:Translate AddOrder_Date}"
Style ="{StaticResource LabelStyle}">
</rendered:BaseLabel>
<rendered:BaseLabel
Text ="{Binding Date}"
Style ="{StaticResource TextboxStyle}" >
</rendered:BaseLabel>
<StackLayout.GestureRecognizers>
<TapGestureRecognizer
Command="{Binding DateCommand}" />
</StackLayout.GestureRecognizers>
</StackLayout>
<StackLayout
Orientation ="Vertical"
Spacing ="0"
Padding ="0,0,0,0"
VerticalOptions ="Fill"
HorizontalOptions="End"
WidthRequest ="40">
<Image
Source ="ic_date"
Aspect ="AspectFit"
WidthRequest ="15"
HeightRequest ="15"
VerticalOptions ="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
</StackLayout>
</StackLayout>
</RelativeLayout>
<RelativeLayout
HeightRequest ="64"
HorizontalOptions="Fill">
<rendered:BaseButton
IsEnabled ="false"
Text =""
BackgroundColor ="{StaticResource GrayTextBackground}"
BorderRadius ="5"
RelativeLayout.XConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0, Constant=14}"
RelativeLayout.YConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0, Constant=7}"
RelativeLayout.WidthConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1, Constant=-28}"
RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=1, Constant=-14}" />
<StackLayout
Orientation ="Horizontal"
Spacing ="5"
RelativeLayout.XConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0, Constant=14}"
RelativeLayout.YConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0, Constant=7}"
RelativeLayout.WidthConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1, Constant=-28}"
RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=1, Constant=-14}">
<StackLayout
Orientation ="Vertical"
Spacing ="0"
Padding ="15,5,15,5"
VerticalOptions ="Fill"
HorizontalOptions="FillAndExpand">
<rendered:BaseLabel
Text ="{i18n:Translate AddOrder_Client}"
Style ="{StaticResource LabelStyle}">
</rendered:BaseLabel>
<rendered:BaseLabel
Text ="{Binding Client}"
Style ="{StaticResource TextboxStyle}">
</rendered:BaseLabel>
<StackLayout.GestureRecognizers>
<TapGestureRecognizer
Command="{Binding SearchClientCommand}" />
</StackLayout.GestureRecognizers>
</StackLayout>
<StackLayout
Orientation ="Vertical"
Spacing ="0"
Padding ="0,0,0,0"
VerticalOptions ="Fill"
HorizontalOptions="End"
WidthRequest ="40">
<Image
Source ="ic_client_name"
Aspect ="AspectFit"
WidthRequest ="15"
HeightRequest ="15"
VerticalOptions ="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
</StackLayout>
</StackLayout>
</RelativeLayout>
<RelativeLayout
HeightRequest ="64"
HorizontalOptions="Fill">
<rendered:BaseButton
IsEnabled ="false"
Text =""
BackgroundColor ="{StaticResource GrayTextBackground}"
BorderRadius ="5"
RelativeLayout.XConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0, Constant=14}"
RelativeLayout.YConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0, Constant=7}"
RelativeLayout.WidthConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1, Constant=-28}"
RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=1, Constant=-14}" />
<StackLayout
Orientation ="Horizontal"
Spacing ="5"
RelativeLayout.XConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0, Constant=14}"
RelativeLayout.YConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0, Constant=7}"
RelativeLayout.WidthConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1, Constant=-28}"
RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=1, Constant=-14}">
<StackLayout
Orientation ="Vertical"
Spacing ="0"
Padding ="15,5,15,5"
VerticalOptions ="Fill"
HorizontalOptions="FillAndExpand">
<rendered:BaseLabel
Text ="{i18n:Translate AddOrder_Remarks}"
Style ="{StaticResource LabelStyle}" >
</rendered:BaseLabel>
<rendered:BorderlessEntry
Text ="{Binding Remarks}"
Style ="{StaticResource TextboxStyle}" >
</rendered:BorderlessEntry>
</StackLayout>
<StackLayout
Orientation ="Vertical"
Spacing ="0"
Padding ="0,0,0,0"
VerticalOptions ="Fill"
HorizontalOptions="End"
WidthRequest ="40">
<Image
Source ="ic_your_remarks"
Aspect ="AspectFit"
WidthRequest ="15"
HeightRequest ="15"
VerticalOptions ="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
</StackLayout>
</StackLayout>
<RelativeLayout.GestureRecognizers>
<TapGestureRecognizer
Tapped ="OnTapGestureRecognizerForFocus" />
</RelativeLayout.GestureRecognizers>
</RelativeLayout>
</StackLayout>
</ScrollView>
<RelativeLayout
RelativeLayout.XConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0, Constant=0}"
RelativeLayout.YConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=1, Constant=-53}"
RelativeLayout.WidthConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1, Constant=0}"
RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0, Constant=53}">
<rendered:BaseButton
x:Name ="cancelButton"
Command ="{Binding CancelCommand}"
CommandParameter ="{x:Reference cancelButton}"
Text ="{i18n:Translate App_Cancel}"
FontSize ="14"
TextColor ="White"
BackgroundColor ="{StaticResource BlueDark_073B74}"
FontAttributes ="Bold"
BorderRadius ="5"
RelativeLayout.XConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.022, Constant=0}"
RelativeLayout.YConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0, Constant=6}"
RelativeLayout.WidthConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.467, Constant=0}"
RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=1, Constant=-13}" />
<rendered:BaseButton
x:Name ="saveButton"
Command ="{Binding ProceedCommand}"
CommandParameter ="{x:Reference saveButton}"
Text ="{i18n:Translate App_Proceed}"
FontSize ="14"
TextColor ="{StaticResource BlueDark_073B74}"
BackgroundColor ="{StaticResource Golden_F5AF01}"
FontAttributes ="Bold"
BorderRadius ="5"
RelativeLayout.XConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.511, Constant=0}"
RelativeLayout.YConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0, Constant=6}"
RelativeLayout.WidthConstraint ="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.467, Constant=0}"
RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=1, Constant=-13}" />
</RelativeLayout>
</RelativeLayout>
</ContentPage.Content>
</basepage:BasePage>
Я также хотел бы добавить, что эта проблема только в iOS для Android, она работает отлично.Пожалуйста, проверьте и дайте мне знать, что мне не хватает, так как я новичок в xamarin.