c# - 是否可以将 xaml.cs 连接到 VS2017 csproj 格式的相应 xaml?

标签 c# wpf xaml visual-studio-2017 csproj

由于 NuGet 打包的巨大优势,我将 C# 库的 csproj 文件转换为新的 Visual Studio 2017 格式,如下所述: Old csproj to new csproj: Visual Studio 2017 upgrade guide .

现在我的 WPF 用户控件的所有 xaml.csxaml 文件都单独并排显示,而不是在一个结构中 (xaml.cs“内部”xaml)。此外,我无法通过上下文菜单命令“查看代码”或“查看设计器”在它们之间切换。

我发现我可以通过在 csproj 文件中添加适当的条目来解决结构显示问题:

<Compile Include="SomeView.xaml.cs">
  <DependentUpon>SomeView.xaml</DependentUpon>
</Compile>

保存 csproj 文件后,需要一两秒钟的时间,然后这两个项目在项目资源管理器 View 中可视化结构化。 不过,我仍然无法通过上下文菜单命令在它们之间切换。

此外,我在编译时收到错误 NETSDK1022,告诉我那些编译元素现在加倍了(新项目格式会自动添加所有合适的文件)。可以通过将 EnableDefaultCompileItems 设置为 false 来禁用此机制,这是可行的。

是否有更好的方法来“绑定(bind)”xaml 及其新 VS2017 项目格式的代码隐藏文件?

(也许这就是为什么还没有为 window 项目发布新项目格式的问题之一……)

最佳答案

Include 替换为 Update

从你的角度出发

the new project format automatically adds all suitable files

因为这一点,通常更喜欢使用Update而不是Include。就是这个。

假设默认包含所有文件,当您使用“包含”一词时,您正在添加一个已经存在的文件。但是,如果您使用“更新”一词,则更新已包含的文件。

关于c# - 是否可以将 xaml.cs 连接到 VS2017 csproj 格式的相应 xaml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54220772/

相关文章:

c# - 从 nHibernate 获取执行的 SQL

c# - 调试 Windows 8 的 XAML 解析错误的过程

c# - WPF 通知不适用于多个 View 模型

c# - Windows 8 metro : ListView ignores ItemTemplate

c# - 将 excel 文件从 MVC 5 Controller 流式传输到浏览器

c# - 如何在列表中(同时)应用多个过滤条件?

c# - 触发器不适用于 ToggleButton.IsChecked 属性

c# - 使用 Josh Smith 的 WPF MVVM 演示应用程序实现 ListView 筛选器

使用 Graph# 库时出现 XamlParseException

c# - 无法加载文件或程序集 NLog