Xamarin Forms共享项目新内容页面cs文件未耦合

时间:2017-10-11 16:38:53

标签: xamarin.forms

Visual Studio 2017专业版。

Xamarin跨平台应用程序,空白应用程序,Xamarin.Forms,共享项目。

在共享项目中,如果我添加一个新的Xamarin.Forms内容页面(Page1),.xaml和xaml.cs文件就不会像你期望的那样耦合。

enter image description here

我通过手动编辑.projitems文件找到了一个解决方法,因为你期望(用DependentUpon标签替换SubType标签):

>     <Compile Include="$(MSBuildThisFileDirectory)MainPage.xaml.cs">
        <DependentUpon>MainPage.xaml</DependentUpon>
      </Compile>
      <Compile Include="$(MSBuildThisFileDirectory)Page1.xaml.cs">
        <SubType>Code</SubType>
      </Compile>

好像这是个错误?无论如何不必进行此手动编辑以获得期望的结果?

3 个答案:

答案 0 :(得分:0)

我不确定这里可能出现什么问题。正如您所指出的,您可以选择编辑项目文件。

另一种不需要您手动编辑项目文件的解决方案是:

  1. 从项目中排除this.router.events .filter(event => event instanceof RoutesRecognized) .map( (event: RoutesRecognized) => { return event.state.root.firstChild.data['custom_data']; }) .subscribe(customData => { console.log(customData); }); .xaml(右键单击文件=&gt;从项目中排除)
  2. 选择添加现有项目(右键单击项目=&gt;添加现有项目)
  3. 仅选择.xaml.cs文件
  4. Visual Studio现在应该导入两个文件并“耦合”它们。

答案 1 :(得分:0)

我正在使用VS2017 15.6.2除了你提到的bug之外,在我的例子中,.xaml文件不包含在项目中!!。

我的解决方案,请确保在.projitems文件中包含这两部分

1st:在.xaml文件中将.xaml.cs文件显示为子文件

<ItemGroup>
    ...
    <Compile Include="$(MSBuildThisFileDirectory)Page1.xaml.cs">
        <DependentUpon>Page1.xaml</DependentUpon>
    </Compile>
    ...
</ItemGroup>

第二:将文件包含在项目中

<ItemGroup>
    ...
    <EmbeddedResource Include="$(MSBuildThisFileDirectory)Page1.xaml">
        <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
    </EmbeddedResource>
    ...
</ItemGroup>

来自智利的问候!

答案 2 :(得分:0)

我在Mac的VS 2019中遇到了相同的问题。 我通过

解决了问题
  1. 选择添加一个新文件

  2. 写相同的名字。

  3. VS找到了文件并将其按预期的连接添加到项目中