首页 文章

XAML Xamarin表单中的基页

提问于
浏览
0

我在XAML中有多个用户控件,共享代码我想放在基页中,所以我想要

singleLine.xaml --> singleLine.xaml.cs --- > basepage.cs

doubleLine.xaml --> doubleLine.xaml.cs --- > basepage.cs

singleLine.xaml

<StackLayout Orientation="Horizontal" HorizontalOptions="FillAndExpand" Margin="0" BackgroundColor="White">
  <StackLayout.GestureRecognizers>
    <TapGestureRecognizer Tapped="OnTapped"/>
  </StackLayout.GestureRecognizers>  

  <StackLayout Orientation="Horizontal" HorizontalOptions="FillAndExpand" Margin="0"  BackgroundColor="White">
        <Label x:Name="ViewTitle" Style="{StaticResource lblJobDetailName}" />
        <Label x:Name="ViewValue" Style="{StaticResource lblJobDetailValue}" />
    </StackLayout> 
  <Image x:Name="EditIcon" Source="edit.png" Margin="15,15,15,15" IsVisible="false" WidthRequest="15" HeightRequest="15" />
</StackLayout>

singleLine.xaml.cs

using System;
 using Xamarin.Forms;

 namespace Client.UI.Pages.UserControls
 {
    public partial class SingleLine :   Client.UI.Pages.UserControls.BaseUserControl
    {  
        // do stuff


        #region Constructors 
        public SingleLine()
        {
              InitializeComponent();
        }
        #endregion
    }

}

basepage.cs

using System;
  using System.Collections.Generic;

  using System.Linq;
  using System.Text;
  using System.Threading.Tasks;
  using Xamarin.Forms;

  namespace Client.UI.Pages.UserControls
  {
     public class BaseUserControl: Xamarin.Forms.ContentView
     {
          public BaseUserControl()
          {
          }
     }
  }

系统不会编译,我得到以下错误

Error  CS0234  The type or namespace name 'BaseUserControl' does not exist in the namespace 'Client.UI.Pages.UserControls' (are you missing an assembly reference?)    Client.UI   C:\Projects\Client.UI\Pages\UserControls\SingleLineItem.xaml.cs 8   Active

这似乎是一件简单的事情,但引起了头痛,任何想法?

1 回答

  • 0

    应该:

    using System;
     using Xamarin.Forms;
    
    namespace Client.UI.Pages.UserControls
    {
       public partial class SingleLine :   Client.UI.Pages.UserControls.BaseUserControl
       {  
        // do stuff
          #region Constructors 
          public SingleLine()
          {
             InitializeComponent();
          }
          #endregion
    
      .... etc
      } // end of class
    }
    

    此外,您不需要显式声明名称空间,因为SingleLine和BaseUserControl都在同一名称空间中....

    public partical class SingleLine : BaseUserControl
    

    这应该工作....

相关问题