c# - 在特定视图部分崩溃
问题描述
目前我一直在研究这个观点,学到了很多东西并且被卡住了一段时间。当我添加注释代码部分时,此屏幕(视图)崩溃,我不知道为什么,但我需要它,因为它是视图的一个组件。
Documentos.xaml 代码:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:viewModels="clr-namespace:AppQ4evo.Models"
x:Class="AppQ4evo.Views.Documentos"
BackgroundColor="White">
<ContentPage.BindingContext>
<viewModels:DocumentsBindingModel />
</ContentPage.BindingContext>
<ContentPage.ToolbarItems>
<ToolbarItem x:Name="iconAttach" Order="Primary" Icon="attach.png" Priority="-1" />
</ContentPage.ToolbarItems>
<ContentPage.Content>
<AbsoluteLayout Padding="0" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
<StackLayout>
<Grid x:Name="docs" Padding="-2" BackgroundColor="Aquamarine">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackLayout Grid.Row="0" Margin="10,20">
<Label Text="Data Documento: "/>
<Label Text="Número externo: "/>
<Label Text="Fornecedor: "/>
</StackLayout>
<StackLayout Grid.Row="1" Margin="0,-10">
<Button x:Name="btnAdd" Text="Adicionar" Clicked="btnAddPopup_Clicked" />
</StackLayout>
<!--
<Grid x:Name="ListViewHeaders" Grid.Row="2" Margin="0,20,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="60" />
<ColumnDefinition Width="65" />
<ColumnDefinition Width="80" />
<ColumnDefinition Width="25" />
<ColumnDefinition Width="60" />
</Grid.ColumnDefinitions>
<BoxView Color="Black" Grid.Row="0" Grid.ColumnSpan="8" HeightRequest="0.5" />
<BoxView Color="DimGray" Grid.Row="0" Grid.ColumnSpan="8" />
<Label Grid.Column="1" Text="Produto" XAlign="Center" YAlign="Center" TextColor="White" FontAttributes="Bold" FontSize="Small"/>
<Label Grid.Column="2" Text="Descrição" XAlign="Center" YAlign="Center" TextColor="White" FontAttributes="Bold" FontSize="Small"/>
<Label Grid.Column="3" Text="Observação" XAlign="Center" YAlign="Center" TextColor="White" FontAttributes="Bold" FontSize="Small"/>
<Label Grid.Column="4" Text="Qtd" XAlign="Center" YAlign="Center" TextColor="White" FontAttributes="Bold" FontSize="Small"/>
<Label Grid.Column="5" Text="Valor Unitário" XAlign="Center" YAlign="Center" TextColor="White" FontAttributes="Bold" FontSize="Small"/>
<Label Grid.Column="6" Text="IVA" XAlign="Center" YAlign="Center" TextColor="White" FontAttributes="Bold" FontSize="Small"/>
</Grid>
<AbsoluteLayout x:Name="absLayout" Grid.Row="2" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
<ListView x:Name="DocumentsList" ItemsSource="{Binding DocumentosList}" HasUnevenRows="True" Margin="0,60" BackgroundColor="White"
HeightRequest="{Binding Path=Height, Source={x:Reference absLayout}}" WidthRequest="{Binding Path=Width, Source={x:Reference absLayout}}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"></ColumnDefinition>
<ColumnDefinition Width="50"></ColumnDefinition>
<ColumnDefinition Width="70"></ColumnDefinition>
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="30"></ColumnDefinition>
<ColumnDefinition Width="50"></ColumnDefinition>
<ColumnDefinition Width="45"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="1" Text="{Binding Produto}" XAlign="Center" YAlign="Center" TextColor="Black" FontAttributes="Bold"/>
<Label Grid.Row="0" Grid.Column="2" Text="{Binding Descricao}" XAlign="Center" YAlign="Center" TextColor="Black" FontAttributes="Bold"/>
<Label Grid.Row="0" Grid.Column="3" Text="{Binding Observacao}" XAlign="Center" YAlign="Center" TextColor="Black" FontAttributes="Bold"/>
<Label Grid.Row="0" Grid.Column="4" Text="{Binding Quantidade}" XAlign="Center" YAlign="Center" TextColor="Black" FontAttributes="Bold"/>
<Label Grid.Row="0" Grid.Column="5" Text="{Binding ValorUnitario}" XAlign="Center" YAlign="Center" TextColor="Black" FontAttributes="Bold"/>
<Label Grid.Row="0" Grid.Column="6" Text="{Binding Iva}" XAlign="Center" YAlign="Center" TextColor="Black" FontAttributes="Bold"/>
</Grid>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</AbsoluteLayout>
-->
</Grid>
</StackLayout>
<ContentView x:Name="popupAddDocumentView" BackgroundColor="Yellow" Margin="40,120" Padding="10,0" IsVisible="false" >
<StackLayout VerticalOptions="Center" HorizontalOptions="Center">
<StackLayout Orientation="Vertical" HeightRequest="400" WidthRequest="300" BackgroundColor="Gray">
<Image HorizontalOptions="End" Source="close.png" HeightRequest="20" WidthRequest="20">
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="OnImageNameTapped_ClosePopup" NumberOfTapsRequired="1" />
</Image.GestureRecognizers>
</Image>
<Entry x:Name="ProdutoEntry" Margin="20,0,20,0" Placeholder="Introduza o produto" />
<Entry x:Name="DescricaoEntry" Margin="20,0,20,0" Placeholder="Introduza a descrição" />
<Entry x:Name="ObservacaoEntry" Margin="20,0,20,0" Placeholder="Introduza a observação" />
<Entry x:Name="QuantidadeEntry" Margin="20,0,20,0" Placeholder="Introduza a quantidade" />
<Entry x:Name="ValorUnitarioEntry" Margin="20,0,20,0" Placeholder="Introduza o valor" />
<Entry x:Name="IvaEntry" Margin="20,0,20,0" Placeholder="Introduza o IVA" />
<Button x:Name="btnAddDocument" Margin="20,0,20,0" Clicked="btnAddDocument_Clicked" Text="Adicionar" />
</StackLayout>
</StackLayout>
</ContentView>
</AbsoluteLayout>
</ContentPage.Content>
</ContentPage>
Documentos.xaml.cs 代码:
using AppQ4evo.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace AppQ4evo.Views
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class Documentos : ContentPage
{
DocumentsBindingModel documents;
public Documentos()
{
InitializeComponent();
documents = new DocumentsBindingModel();
}
private void btnAddPopup_Clicked(object sender, EventArgs e)
{
Console.WriteLine("Olá Tren");
popupAddDocumentView.IsVisible = true;
}
private void OnImageNameTapped_ClosePopup(object sender, EventArgs e)
{
try
{
popupAddDocumentView.IsVisible = false;
}
catch (Exception ex)
{
}
}
private void btnAddDocument_Clicked(object sender, EventArgs e)
{
popupAddDocumentView.IsVisible = false;
DocumentosModel documentosBindingModel = new DocumentosModel() { Produto = ProdutoEntry.Text };
documents.DocumentosList.Add(documentosBindingModel);
BindingContext = documents;
//DocumentsList.IsRefreshing = false;
}
}
}
有没有办法知道是什么导致它以及如何解决它?因为当我遇到这样的问题时,我不知道如何解决。
我评论了一些部分并单独显示它们,但是当我取消注释所有内容以使其作为一个整体工作时,感觉就像它在应用程序上付出了很多努力并且它崩溃了。
解决方案
推荐阅读
- r - 绘制一个带有对数函数的伽马模型,该模型带有一个带有 ggplot2 的预测器
- c++ - 在 C++ 线性代数库 Eigen3 中是否可以通过值传递和移动?
- python - 在 QTreeView 的 QSortFilterProxyModel 中显示来自 filterAcceptsRow() 的已接受子代但不显示父代
- javascript - 同一行上两种不同形式的按钮
- android - 如何在 Android Studio 中的 Navigation Graph 上切换片段方向
- javascript - 带有接受声明函数的 then 方法的打字稿编码样式
- firebase - 我将我的 Firebase 规则更改为所有经过身份验证的用户。我需要在请求中更改什么 (Flutter)
- java - 如何从列表中删除重复记录并用枚举标记它?
- javascript - 科尔多瓦 div 溢出滚动导致整个屏幕滚动
- owl - 在 Protege 5 中,什么最能减慢推理者的速度?