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

发布于 2024-10-19 07:29:17 字数 136 浏览 1 评论 0原文

如何将我的 ViewModel 文件(.cs 文件)折叠到其相应的 View 文件(.xaml 文件)文件中,如图所示?

在此处输入图像描述

How can I put my ViewModel file (a .cs file) folded inside its corresponded View file (a .xaml file) file like in the image?

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

肥爪爪 2024-10-26 07:29:17

我不知道在 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>

这两个标签在您的文件中可能并不紧挨着。重要的部分是 标记。

在您的文件中,找到带有 include="ViewModel.cs" 属性的标记。在此标记内部,添加 View.xaml 作为子元素。现在,您的 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>

I don't know of a way to do it in visual studio, but you can edit your .csproj file in a text editor. You should find something like this:

<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>

The two tags might not be right next to each other in your file. The important part is the <DependantUpon> tag.

In your file, find the tag with the include="ViewModel.cs" attribute. Inside of this tag, add <DependantUpon>View.xaml</DependantUpon> as a child element. Now your ViewModel.cs file will always be a inside the View.xaml file. In the end, your file should have these something similar to this snippet:

<Page Include="View.xaml">
  <SubType>Designer</SubType>
  <Generator>MSBuild:Compile</Generator>
</Page>
<Compile Include="ViewModel.cs">
  <DependentUpon>View.xaml</DependentUpon>
</Compile>
分分钟 2024-10-26 07:29:17

所以,经过多次尝试和错误,我终于想出了一个令人满意的解决方案。这是一个老问题,但无论如何我要把它留在这里。

如果您希望将嵌套在视图下的所有视图模型(例如 MainWindowViewModel.cs)折叠到 MainWindow.xaml 内,并将这些行添加到您的 csproj

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

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

So, after a lot of try and error finally I've came up with a satisfying solution. this is an old question, but I'm gonna leave this here anyway.

If you want to all of your viewmodels nested under your views e.g. MainWindowViewModel.cs be folded inside MainWindow.xaml and these lines to your csproj

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

And then unload and reload the project. now if you add any class file that has the ViewModel.cs postfix in its name, it's going to be listed under your .xaml file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文