Я в основном пропускаю объект через конструктор формы, а затем пытаюсь установить другой объект для экземпляра разобранного объекта, который не работает, значение остается нулевым, обратите внимание, что этот код работал на другой странице содержимого.Разница лишь в том, что я привязываю записи, а не метки.
public partial class CatoSelectUWP : ContentPage
{
public static Product prod;
public CatoSelectUWP(Product product)
{
InitializeComponent();
App.isHandeled = true;
prod = product;
}
protected override void OnAppearing()
{
pcodetxt.Text = prod.PROD.ToString();
desctxt.Text = prod.PDSC.ToString();
brndtxtUWP.Text = prod.PBRN.ToString();
coltxtuwp.Text = prod.PCOL.ToString();
packtxtuwp.Text = prod.PPCD.ToString();
sellingtxtUWP.Text = prod.SELL.ToString();
iqtytxt.Text = prod.IQTY.ToString();
pskutxtUWP.Text = prod.PSKU.ToString();
sizetxtUWP.Text = prod.PSZE.ToString();
App.isHandeled = false;
}
}
prod должен содержать значения переданного продукта.
Кажется, что происходит, когда приложение возвращается кИсходная страница несколько раз, а затем при ее остановке продукт становится пустым.
Код выбора предыдущей страницы
private async void LVUWP_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
try
{
if (stat == false&& App.isHandeled == false)
{
var obj = (Product)e.SelectedItem;
Product prodselect = new Product(obj.PROD, obj.DPID, obj.SDID, obj.CGID, obj.SCID, obj.PDSC, obj.PBRN,
obj.SESN, obj.IQTY, obj.CURR, obj.SELL, obj.PSKU, obj.PSZE, obj.PCOL, obj.PPCD, obj.DPDS);
App.isHandeled = true;
await Navigation.PushAsync(new CatoSelectUWP(prodselect));
}
}
catch (Exception ex)
{
throw ex;
}
}
Xaml
<ContentPage.Content>
<ScrollView>
<StackLayout Margin="20">
<StackLayout>
<Image
Aspect="AspectFit"
HeightRequest="300"
Source="shoe1.jpg"
WidthRequest="300" />
</StackLayout>
<StackLayout HorizontalOptions="Center" Orientation="Vertical">
<Label
HorizontalOptions="Fill"
Text="Product Code:"
TextColor="{x:StaticResource Key=ColorBlue}" />
<Entry
x:Name="pcodetxt"
HorizontalOptions="End"
HorizontalTextAlignment="Center"
IsEnabled="False"
Text="Product Code"
TextColor="{x:StaticResource Key=ColorBlue}"
WidthRequest="500" />
<Label
HorizontalOptions="Start"
Text="Description:"
TextColor="{x:StaticResource Key=ColorBlue}" />
<Entry
x:Name="desctxt"
HorizontalOptions="End"
HorizontalTextAlignment="Center"
IsEnabled="False"
Text="Description"
TextColor="{x:StaticResource Key=ColorBlue}"
WidthRequest="500" />
<Label
HorizontalOptions="Start"
Text="Brand:"
TextColor="{x:StaticResource Key=ColorBlue}" />
<Entry
x:Name="brndtxtUWP"
HorizontalOptions="End"
HorizontalTextAlignment="Center"
IsEnabled="False"
Text="Brand"
TextColor="{x:StaticResource Key=ColorBlue}"
WidthRequest="500" />
<Label
HorizontalOptions="Start"
Text="Colours Available:"
TextColor="{x:StaticResource Key=ColorBlue}" />
<Entry
x:Name="coltxtuwp"
HorizontalOptions="End"
HorizontalTextAlignment="Center"
IsEnabled="False"
Text="Colours Available"
TextColor="{x:StaticResource Key=ColorBlue}"
WidthRequest="500" />
<Label
HorizontalOptions="Start"
Text="Available Packs:"
TextColor="{x:StaticResource Key=ColorBlue}" />
<Entry
x:Name="packtxtuwp"
HorizontalOptions="End"
HorizontalTextAlignment="Center"
IsEnabled="False"
Text="Available Packs"
TextColor="{x:StaticResource Key=ColorBlue}"
WidthRequest="500" />
<Label
HorizontalOptions="Start"
Text="selling Price:"
TextColor="{x:StaticResource Key=ColorBlue}" />
<Entry
x:Name="sellingtxtUWP"
HorizontalOptions="End"
HorizontalTextAlignment="Center"
IsEnabled="False"
Text="Unit Price"
TextColor="{x:StaticResource Key=ColorBlue}"
WidthRequest="500" />
<Label
HorizontalOptions="Start"
Text="Issue Quantity:"
TextColor="{x:StaticResource Key=ColorBlue}" />
<Entry
x:Name="iqtytxt"
HorizontalOptions="End"
HorizontalTextAlignment="Center"
IsEnabled="False"
Text="Unit Price"
TextColor="{x:StaticResource Key=ColorBlue}"
WidthRequest="500" />
<Label
HorizontalOptions="Start"
Text="Product SKU:"
TextColor="{x:StaticResource Key=ColorBlue}" />
<Entry
x:Name="pskutxtUWP"
HorizontalOptions="End"
HorizontalTextAlignment="Center"
IsEnabled="False"
Text="Unit Price"
TextColor="{x:StaticResource Key=ColorBlue}"
WidthRequest="500" />
<Label
HorizontalOptions="Start"
Text="Sizes:"
TextColor="{x:StaticResource Key=ColorBlue}" />
<Entry
x:Name="sizetxtUWP"
HorizontalOptions="End"
HorizontalTextAlignment="Center"
IsEnabled="False"
Text="Unit Price"
TextColor="{x:StaticResource Key=ColorBlue}"
WidthRequest="500" />
</StackLayout>
</StackLayout>
</ScrollView>
Что, кажется, происходит
Я установил точку останова, чтобы объяснить, что происходит, если продукт получает правильные значения, а затем по какой-то причине несколько раз возвращается к строке кода
await Navigation.PushAsync(new CatoSelectUWP(prodselect));
, а затем, когда он останавливается, продукт снова становится пустым.
Решено
При сканировании кода я заметил, что было второе событие, которое обрабатывает нажатие элемента ячейки вида, и это ошибка, и я исправил проблему, удалив второе событие.обработчик.