我怎样才能把我的ViewModel文件(一个.cs文件)折叠在其相应的视图文件(一个.xaml文件)文件中,就像在图像?
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文件中。最后,你的文件应该有类似于这个片段的东西:
<DependantUpon>
include="ViewModel.cs"
<DependantUpon>View.xaml</DependantUpon>
<Page Include="View.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> <Compile Include="ViewModel.cs"> <DependentUpon>View.xaml</DependentUpon> </Compile>
fykwrbwg2#
所以,经过大量的尝试和错误,我终于想出了一个令人满意的解决方案。这是个老问题了但我还是要把这个留在这里如果你想把你所有的视图模型嵌套在你的视图下,比如将MainWindowViewModel.cs折叠在MainWindow.xaml内部,并将这些行添加到您的csproj
MainWindowViewModel.cs
MainWindow.xaml
<ItemGroup> <Compile Update="**\*ViewModel.cs"> <DependentUpon>$([System.String]::Copy(%(Filename)).Replace('ViewModel', '.xaml'))</DependentUpon> </Compile> </ItemGroup>
然后卸载并重新加载项目。现在,如果你添加任何类文件,其名称中有ViewModel.cs后缀,它将列在你的.xaml文件下面。
ViewModel.cs
2条答案
按热度按时间bxpogfeg1#
我不知道在visual studio中有什么方法可以做到这一点,但你可以在文本编辑器中编辑你的.csproj文件。你应该会发现这样的东西:
这两个标记在文件中可能不相邻。重要的部分是
<DependantUpon>
标记。在您的文件中,找到具有
include="ViewModel.cs"
属性的标记。在此标记内,添加<DependantUpon>View.xaml</DependantUpon>
作为子元素。现在您的ViewModel.cs文件将始终位于View.xaml文件中。最后,你的文件应该有类似于这个片段的东西:fykwrbwg2#
所以,经过大量的尝试和错误,我终于想出了一个令人满意的解决方案。这是个老问题了但我还是要把这个留在这里
如果你想把你所有的视图模型嵌套在你的视图下,比如将
MainWindowViewModel.cs
折叠在MainWindow.xaml
内部,并将这些行添加到您的csproj然后卸载并重新加载项目。现在,如果你添加任何类文件,其名称中有
ViewModel.cs
后缀,它将列在你的.xaml文件下面。