簡體   English   中英

在VS17上帶有導航抽屜/主詳細信息(Xamarin.Forms)的探針

[英]Probems with a Navigation Drawer /Master Detail (Xamarin.Forms) on VS17

我正在嘗試實現導航抽屜/主菜單細節,但出現此錯誤,但是我的代碼確定,我什至將Xamarin.Forms升級到2.4,但仍然遇到此錯誤:

local:MasterPage not found in xmlns clr-namespace:Diabetics;assembly=Diabetics

完整的錯誤列表:

Xamarin.Forms.Xaml.XamlParseException: Position 7:6. Type local:MasterPage not found in xmlns clr-namespace:Diabetics;assembly=Diabetics
  at Xamarin.Forms.Xaml.CreateValuesVisitor.Visit (Xamarin.Forms.Xaml.ElementNode node, Xamarin.Forms.Xaml.INode parentNode) [0x00040] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Xaml\CreateValuesVisitor.cs:58
  at Xamarin.Forms.Xaml.ElementNode.Accept (Xamarin.Forms.Xaml.IXamlNodeVisitor visitor, Xamarin.Forms.Xaml.INode parentNode) [0x000b1] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Xaml\XamlNode.cs:175
  at Xamarin.Forms.Xaml.RootNode.Accept (Xamarin.Forms.Xaml.IXamlNodeVisitor visitor, Xamarin.Forms.Xaml.INode parentNode) [0x00054] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Xaml\XamlNode.cs:223
  at Xamarin.Forms.Xaml.XamlLoader.Visit (Xamarin.Forms.Xaml.RootNode rootnode, Xamarin.Forms.Xaml.HydratationContext visitorContext) [0x00053] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Xaml\XamlLoader.cs:122
  at Xamarin.Forms.Xaml.XamlLoader.Load (System.Object view, System.String xaml) [0x00046] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Xaml\XamlLoader.cs:76
  at Xamarin.Forms.Xaml.XamlLoader.Load (System.Object view, System.Type callingType) [0x0002f] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Xaml\XamlLoader.cs:56
  at Xamarin.Forms.Xaml.Extensions.LoadFromXaml[TXaml] (TXaml view, System.Type callingType) [0x00000] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Xaml\ViewExtensions.cs:36
  at Diabetics.MainActivity.InitializeComponent () [0x00001] in /Users/haleem/Projects/Diabetics/iOS/obj/iPhoneSimulator/Debug/Diabetics.iOS.Main.MainActivity.xaml.g.cs:22
  at Diabetics.MainActivity..ctor () [0x00008] in /Users/haleem/Projects/Diabetics/Diabetics/Main/MainActivity.xaml.cs:13
  at Diabetics.App..ctor () [0x0000f] in /Users/haleem/Projects/Diabetics/Diabetics/App.xaml.cs:16
  at Diabetics.iOS.AppDelegate.FinishedLaunching (UIKit.UIApplication app, Foundation.NSDictionary options) [0x00007] in /Users/haleem/Projects/Diabetics/iOS/AppDelegate.cs:16
  at at (wrapper managed-to-native) UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr)
  at UIKit.UIApplication.Main (System.String[] args, System.IntPtr principal, System.IntPtr delegate) [0x00005] in /Users/builder/data/lanes/4991/4a279c9a/source/xamarin-macios/src/UIKit/UIApplication.cs:79
  at UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x00038] in /Users/builder/data/lanes/4991/4a279c9a/source/xamarin-macios/src/UIKit/UIApplication.cs:63
  at Diabetics.iOS.Application.Main (System.String[] args) [0x00001] in /Users/haleem/Projects/Diabetics/iOS/Main.cs:17

我的MasterPageDetail類MainActivity.cs

using System;
using System.Collections.Generic;
using Diabetics.Models;
using Xamarin.Forms;

namespace Diabetics
{
    public partial class MainActivity : MasterDetailPage
    {
        public MainActivity()
        {

            InitializeComponent();


            masterPage.ListView.ItemSelected += OnItemSelected;
            /*
            if (Device.RuntimePlatform == Device.Windows)
            {
                MasterBehavior = MasterBehavior.Popover;
            }
            */
        }
        void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
        {
            var item = e.SelectedItem as MasterPageItem;
            if (item != null)
            {
                Detail = new NavigationPage((Page)Activator.CreateInstance(item.TargetType));
                masterPage.ListView.SelectedItem = null;
                IsPresented = false;
            }
        }
    }
}

然后我的Xaml for MainActivity.xaml

<?xml version="1.0" encoding="UTF-8"?>
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms" 
                  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
                  xmlns:local="clr-namespace:Diabetics;assembly=Diabetics"
                  x:Class="Diabetics.MainActivity">
  <MasterDetailPage.Master>
    <local:MasterPage x:Name="masterPage" />
  </MasterDetailPage.Master>
    <MasterDetailPage.Detail>
        <NavigationPage>
            <x:Arguments>
                <local:HomeActivity />
            </x:Arguments>
        </NavigationPage>
    </MasterDetailPage.Detail>
</MasterDetailPage>

這是我的MasterPage.cs類:

using System;
using System.Collections.Generic;
using Diabetics.Models;
using Xamarin.Forms;

namespace Diabetics
{
    public partial class MasterPage : ContentPage
    {
        public ListView ListView { get { return listView; } }

        public MasterPage()
        {
            InitializeComponent();

            var masterPageItems = new List<MasterPageItem>();
            masterPageItems.Add(new MasterPageItem
            {
                Title = "Today",
                IconSource = "resorts.png",
                TargetType = typeof(Today)
            });
            masterPageItems.Add(new MasterPageItem
            {
                Title = "Therapy",
                IconSource = "ic_login.png",
                TargetType = typeof(Therapy)
            });
            masterPageItems.Add(new MasterPageItem
            {
                Title = "Settings",
                IconSource = "ic_login.png",
                TargetType = typeof(Settings)
            });

            listView.ItemsSource = masterPageItems;
        }
    }
}

這是MasterPage.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" 
    Icon ="nav_icon.png"    Title="Ea "
    x:Class="Diabetics.MasterPage">
    <StackLayout>
        <Image   Source="featured_newline_1.png"  Margin="0,1,0,0"/>
        <ListView x:Name="listView"   Margin="0,10,0,0" VerticalOptions="FillAndExpand" SeparatorVisibility="None">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ImageCell Text="{Binding Title}" ImageSource="{Binding IconSource}" />
                    </DataTemplate>
                </ListView.ItemTemplate>
        </ListView>
    </StackLayout>
</ContentPage>

好。 我在處理共享項目時遇到了挑戰,下面是解決該問題的步驟,但是請記住,解決方案中的每個平台都有一個程序集,但是共享項目(您編寫了大部分代碼)不。:

該錯誤的解決方案是簡單地從xmlns:local字符串中刪除assembly=MyAssemblyName 它應該是xmlns:local="clr-namespace:MyNameSpace;"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM