VS2012手动关联xaml与CS文件

前言:

这个只是记录一下,自己偶尔碰到的一个问题。关于xaml文件与cs文件失去关联关系。

 

简介:

一般来说,当我们通过VS来添加一个Window或者UserControl时,VS会自动帮我们添加两个文件。

一个是XXX.xaml,另外一个就是对应的后台文件。XXX.xaml.cs。而且两个文件时关联在一起的,

如下图所示:

其实,两个文件的关联在逻辑上是由partial 来实现的,所以上图所示的只是一个VS提供的视觉上的关联。

 x:Class="ContactView"

 

问题:

我遇到的情况是,将之前在另外一个地方写好的一个UserControl添加到现有项目时,两个文件没有关联起来。

前面已经说到了,我这里指的是视觉上的没有关联上。

客官请看图:

如图所示,两个文件相比上图,显得没有“关系”。虽然两个文件其实还是可以正常使用的,但是总觉得不专业。

所以,我就想要去调整一下,我记得在VS2010中,可以直接调整的。但是在VS2012中,找了半天也没有找到。

 

解决:

其实,关于项目的很多配置都是在csproj文件中存储的,所以我想到能不能修改这个文件来解决这个问题。

通过打开这个文件,发现确实有这么一个标签来解决这个的。

上代码:

<ItemGroup>
    <ApplicationDefinition Include="App.xaml">
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
    </ApplicationDefinition>
    <Page Include="MainWindow.xaml">
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
    </Page>
    <Page Include="Views\ContactView.xaml">
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
    </Page>
    <Compile Include="App.xaml.cs">
      <DependentUpon>App.xaml</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <Compile Include="MainWindow.xaml.cs">
      <DependentUpon>MainWindow.xaml</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
<Compile Include="Views\ContactView.xaml.cs"/>
</ItemGroup>

 

从上面,可以看出来,只有我们的ContactView文件没有包含DepentUpon元素,

这个元素就是决定视觉上的依赖关系的。我们照着这个加上,试试看吧。

<Compile Include="Views\ContactView.xaml.cs">        
      <DependentUpon>ContactView.xaml</DependentUpon>
      <SubType>Code</SubType>
</Compile>

解决!

posted @ 2013-06-10 10:56  大海向西流  阅读(2202)  评论(0编辑  收藏  举报