本文来安利大家一个有趣而且强大的库,通过 F# 和 C# 混合编程编写 WPF 应用,可以在 WPF 中使用到 F# 强大的数据处理能力
在 GitHub 上完全开源 Elmish.WPF 库,请看 https://github.com/elmish/Elmish.WPF
在阅读本文之前,我期望大家已了解部分 F# 的知识。在学会 C# 基础知识之下,了解 F# 基础知识是很快的,而本文也仅仅只是用到很少的知识。大家都知道,使用 F# 能带来很好的数据处理能力,从 F# 语法层面带来的编写效率提升和编写逻辑的优化,而 F# 本身是没有带 GUI 可视化应用编程的。但是 F# 是在 dotnet 体系下的,天然就可以用上 dotnet 系的技术,当然就包括 WPF 了。因此上一句话说 F# 本身是没有带 GUI 可视化应用编程是完全错误的,因为 F# 可以非常方便调起 WPF 和 WinForms 等成熟的 UI 框架作为自身的可视化应用框架
通过 Elmish.WPF 库,将可以让开发更顺,以下是一个简单的例子。这个例子的代码完全放在 Elmish.WPF 库里,可以通过 https://github.com/elmish/Elmish.WPF 获取所有代码
咱依然通过 VS 创建一个空白的 C# 空白 WPF 程序,在此例子里面,几乎没有 C# 多少的戏份,只是为了使用 C# 更好的驱动 WPF 程序而已,因为部分初始化方法和类型等在 F# 写起来的代码量可不少。本文的主角将交给 XAML 和 F# 这两个语言
打开 App.xaml.cs 文件,咱将修改本文仅有的一点 C# 代码