Страница UWP приводит к сбою на Windows 10 Mobile, но отлично работает на рабочем столеC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Страница UWP приводит к сбою на Windows 10 Mobile, но отлично работает на рабочем столе

Сообщение Anonymous »

Я разрабатываю приложение Windows 10 UWP в C#, которое я также хочу запустить в Windows 10 Mobile. Я установил минимальную версию SDK на 10.0.10240.0, и она запускается просто отлично. Тем не менее, он вылетает при навигации на страницу XAML со следующим контентом: < /p>

Код: Выделить всё

    x:Class="Dav_Connector.EditAccountPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Dav_Connector"
xmlns:vm="using:Dav_Connector.ViewModel"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">




Name

Url

Username

Password

Account Type

Sync Type

Save


< /code>
Это код-behind: < /p>
using Dav_Connector.ViewModel;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;

// Die Elementvorlage "Leere Seite"  wird unter https://go.microsoft.com/fwlink/?LinkId=234238 dokumentiert.

namespace Dav_Connector
{
/// 
/// Eine leere Seite, die eigenständig verwendet oder zu der innerhalb eines Rahmens navigiert werden kann.
/// 
public sealed partial class EditAccountPage : Page
{
public EditAccountPage()
{
this.InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
(DataContext as EditAccountPageViewModel).AccountEditCompleted += EditAccountPage_AccountEditCompleted;
if (e.Parameter is Guid)
{
((EditAccountPageViewModel)DataContext).Load((Guid)e.Parameter);
}
else
{
((EditAccountPageViewModel)DataContext).Load(null);
}
}

private void EditAccountPage_AccountEditCompleted(object sender, EventArgs e)
{
Frame.GoBack();
}

protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
(DataContext as EditAccountPageViewModel).AccountEditCompleted -= EditAccountPage_AccountEditCompleted;
base.OnNavigatingFrom(e);
}
}
}
< /code>
И это ViewModel: < /p>
using AsyncAwaitBestPractices.MVVM;
using Dav_Connector.Library;
using Dav_Connector.Library.Model;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.Security.Credentials;
using Windows.UI.Popups;

namespace Dav_Connector.ViewModel
{
class EditAccountPageViewModel : BindableBase
{
public event EventHandler AccountEditCompleted;
Account _account = null;
public Account Account
{
get => _account;
set => SetProperty(ref _account, value);
}
public AccountType[] AccountTypes
{
get
{
using (var dbContext = new DavConnectorDbContext())
{
return dbContext.AccountTypes.AsNoTracking().ToArray();
}
}
}
public SyncType[] SyncTypes
{
get
{
using (var dbContext = new DavConnectorDbContext())
{
return dbContext.SyncTypes.AsNoTracking().ToArray();
}
}
}

public void Load(Guid? id)
{
if (id != null)
using (var dbContext = new DavConnectorDbContext())
{
Account = dbContext.Accounts.AsNoTracking().SingleOrDefault(acc => acc.Id == id);
}

if (Account == null)
Account = new Account { Id = Guid.NewGuid() };
}
public async Task SaveAsync()
{
using (var dbContext = new DavConnectorDbContext())
{
await dbContext.Accounts.Where(acc => acc.Id == Account.Id).Include(acc => acc.SyncType).Include(acc => acc.AccountType).LoadAsync();
await dbContext.AccountTypes.LoadAsync();
await dbContext.SyncTypes.LoadAsync();
if (await dbContext.Accounts.AnyAsync(acc => acc.Id == Account.Id))
dbContext.Accounts.Update(Account);
else
dbContext.Accounts.Add(Account);
try
{
await dbContext.SaveChangesAsync();
}
catch(Exception ex)
{
var dialog = new MessageDialog(ex.Message, "Error while Saving");
await dialog.ShowAsync();
}
}
AccountEditCompleted?.Invoke(this, EventArgs.Empty);
}
public EditAccountPageViewModel()
{
SaveCommand = new AsyncCommand(SaveAsync);
}
public IAsyncCommand SaveCommand { get; }
}
}
он бросает windows.ui.xaml.markup.xamlparseexception без какого -либо иннрексии или каких -либо указаний относительно того, что могло бы пойти не так. Страница открывается, как и ожидалось на рабочем столе. Весь проект можно найти здесь, если это необходимо.


Подробнее здесь: https://stackoverflow.com/questions/797 ... on-desktop
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»