c# - XAML 继承、代码重用、优化

标签 c# xaml inheritance reusability optimization

在我的 WPF4 桌面应用程序中,所有窗口都具有相同的结构 — 页眉和页脚带有一些主菜单和版权标记;左侧导航菜单和主体(屏幕中心),我在其中显示数据、主工具栏等。主体 block 是唯一在所有窗口中发生变化的 block ,例如在与学生的窗口中,我显示带有学生数据的 DataGrid,在带有新类(class)表格的窗口中,用户可以填写表格并将其提交给数据库。所有这些东西都位于窗口的正文部分。

为了提高代码的可重用性,我使用了C#代码的继承,其中我将所有基本窗口函数存储在GeneralWindow中,所有其他窗口都扩展这个类。

我的问题:

  1. 我可以使用相同的技术来减少窗口的 XAML 部分中相同代码块的副本吗?目前,每个窗口类都有相同的 XAML 代码块(例如左侧菜单、页眉、页脚)。

  2. 如何减少代码重复并使用我在 C# 中使用的相同技术?是否有可能继承 XAML 类 (.xaml),我可以在一个类中定义所有基本内容,而所有其他类只会扩展/继承此类的设计?提高代码的可重用性。

最佳答案

您应该创建一个窗口并在其上放置框架。然后在Frame中动态加载Pages。

参见 Navigation Overview

关于c# - XAML 继承、代码重用、优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4941427/

相关文章:

c# - SignalR 类型名称处理

c# - View 的创建应该是 View 或 ViewModel [MVVM] 的一部分?

wpf - 在InkCanvas之间移动笔触,而仅更改笔触的背景颜色? (WPF)

java - 如何对车辆进行分类——继承与接口(interface)

javascript - 将实例属性放在原型(prototype)构造函数中,好还是坏?

c# - 文本框中的文本更改

c# - Dapper的execute方法对于插入和删除返回两种不同的结果

wpf - 如何将 WPF/XAML GridRow 的高度设置为“自动”,但仍将其限制为 Grid 的最大可用高度?

c++ - 使用 XAML 和 C++ 再现本地视频文件

css - 理解css继承currentColor