如何在Visual Studio 2010中将.cs文件折叠到.xaml文件中?

zfycwa2u  于 2023-06-19  发布在  其他
关注(0)|答案(2)|浏览(117)

我怎样才能把我的ViewModel文件(一个.cs文件)折叠在其相应的视图文件(一个.xaml文件)文件中,就像在图像?

bxpogfeg

bxpogfeg1#

我不知道在visual studio中有什么方法可以做到这一点,但你可以在文本编辑器中编辑你的.csproj文件。你应该会发现这样的东西:

<Page Include="MainWindow.xaml">
  <Generator>MSBuild:Compile</Generator>
  <SubType>Designer</SubType>
</Page>
<Compile Include="MainWindow.xaml.cs">
  <DependentUpon>MainWindow.xaml</DependentUpon>
  <SubType>Code</SubType>
</Compile>

这两个标记在文件中可能不相邻。重要的部分是<DependantUpon>标记。
在您的文件中,找到具有include="ViewModel.cs"属性的标记。在此标记内,添加<DependantUpon>View.xaml</DependantUpon>作为子元素。现在您的ViewModel.cs文件将始终位于View.xaml文件中。最后,你的文件应该有类似于这个片段的东西:

<Page Include="View.xaml">
  <SubType>Designer</SubType>
  <Generator>MSBuild:Compile</Generator>
</Page>
<Compile Include="ViewModel.cs">
  <DependentUpon>View.xaml</DependentUpon>
</Compile>
fykwrbwg

fykwrbwg2#

所以,经过大量的尝试和错误,我终于想出了一个令人满意的解决方案。这是个老问题了但我还是要把这个留在这里
如果你想把你所有的视图模型嵌套在你的视图下,比如将MainWindowViewModel.cs折叠在MainWindow.xaml内部,并将这些行添加到您的csproj

<ItemGroup>
        <Compile Update="**\*ViewModel.cs">
            <DependentUpon>$([System.String]::Copy(%(Filename)).Replace('ViewModel', '.xaml'))</DependentUpon>
        </Compile>
    </ItemGroup>

然后卸载并重新加载项目。现在,如果你添加任何类文件,其名称中有ViewModel.cs后缀,它将列在你的.xaml文件下面。

相关问题