Visual Studio 2017专业版。
Xamarin跨平台应用程序,空白应用程序,Xamarin.Forms,共享项目。
在共享项目中,如果我添加一个新的Xamarin.Forms内容页面(Page1),.xaml和xaml.cs文件就不会像你期望的那样耦合。
我通过手动编辑.projitems文件找到了一个解决方法,因为你期望(用DependentUpon标签替换SubType标签):
> <Compile Include="$(MSBuildThisFileDirectory)MainPage.xaml.cs">
<DependentUpon>MainPage.xaml</DependentUpon>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)Page1.xaml.cs">
<SubType>Code</SubType>
</Compile>
好像这是个错误?无论如何不必进行此手动编辑以获得期望的结果?
答案 0 :(得分:0)
我不确定这里可能出现什么问题。正如您所指出的,您可以选择编辑项目文件。
另一种不需要您手动编辑项目文件的解决方案是:
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;从项目中排除).xaml.cs
文件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中遇到了相同的问题。 我通过
解决了问题选择添加一个新文件
写相同的名字。
VS找到了文件并将其按预期的连接添加到项目中