问题标签 [fsxaml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xaml - FsXaml 可以在 F# 解释脚本中使用吗?
我刚刚将其中一个 FsXaml 演示程序转换为解释的 F# 脚本,以便我可以对其进行试验和学习。它不会运行,并且解释器给了我以下错误消息:
System.NotSupportedException:动态程序集中不支持调用的成员。
在 System.Reflection.Emit.InternalAssemblyBuilder.GetManifestResourceStream(String name)
在 FsXaml.InjectXaml.from(String file, Object root)
在 FsXaml.App.InitializeComponent() 在 FsXaml.App..ctor()
在 FSI_0002.main[a ](a argv) 在 C:\Users\bobmc\OneDrive\FSharp\Learning\WPFExamples\FsXaml\demos\WpfSimpleMvvmApplication\WPFApp.fsx:line 104
at .$FSI_0002.main@() in C:\Users\bobmc\ OneDrive\FSharp\Learning\WPFExamples\FsXaml\demos\WpfSimpleMvvmApplication\WPFApp.fsx:109 行
我可以将 F# 解释器与 FsXaml 一起使用吗?感谢大家的帮助。
f# - 我可以将 FsXaml 与 .NET 4.0 一起使用吗?
FsXaml似乎仅适用于至少面向 .NET 4.5 的项目。
有没有办法在面向 .NET 4.0 时使用它?
如果是这样,我该如何实现?
wpf - f# xaml "this.factory" 不包含 CommandSync
我对 fsxaml 和 F# 有一个奇怪的错误。我有一个视图模型,我想从工厂属性调用 CommandSync,但它不可用。实际上它是空的,没有可用的功能。我在这里想念什么?
代码 :
PS 我已经有 ViewModule 参考
wpf - 使用 WPF 中的按钮调用 F# 函数(FsXaml 方法)
我正在尝试使用 F#、WPF 和 FsXaml 制作一个 Button Hello World 应用程序。我开始遵循本指南:
https://www.c-sharpcorner.com/article/create-wpf-application-with-f-sharp-and-fsxaml/
当我在 xaml 上加载内容并编译时,一切正常,但我没有设法通过按下按钮来调用函数,并且在他解释如何调用函数之前指南结束。
我已经看到了很多不同类型的方法,但还没有什么对我有用(而且许多指南已有多年历史,所以从那以后在框架内发生了很多事情)。一旦我理解了使用 FsXaml 时 x.xaml 和 x.xaml.fs 之间的逻辑,如果有一个工作(且简单)的起点,我就可以开始构建它会很棒。
我在 MainWindow.xaml 上的按钮:
我在 MainWindow.xaml 的 window 部分也有这个:
我的 MainWindow.xaml.fs:
我目前得到的错误:
f# - F# 函数名称和指向该名称的函数值之间的区别
我在 WPF / FsXaml 应用程序中使用以下代码片段:
当我将鼠标悬停时groupSelected
,Visual Studio 显示以下内容:
它略有不同GroupSelected
:
我以前在其他情况下就注意到了这种差异,但从未考虑过太多。如果我想调用其中任何一个,我的代码中的语法是相同的......groupSelected(e)
并且GroupSelected(e)
都编译得很好。
但是,当我尝试从 XAML 中使用这两个时,只有这样才有效:
这不起作用:
这两者之间有什么区别,使得 XAML 静态扩展只适用于第二个?我会(错误地?)认为它们是同一回事。
wpf - 修复 XamlObjectWriterException,无法在 F#、FsXaml、WPF 应用程序中创建未知类型?
我在使用 F#、FsXaml 和 Elmish.WPF 构建的 WPF 应用程序中遇到此错误。
- Views 项目包含 XAML 并包含对 C1.WPF.4.dll 的引用。
- XAML 声明来自 C1.WPF.4.dll 的控件实例。
- 但是,没有使用 C1.WPF.4.dll 中的任何类型的 F# 代码。
- 因此,正如 IL Spy 所证实的,Views.dll 不包含对 C1.WPF.4.dll 的引用。
- 因此,当我构建 App.exe 时,输出文件夹中不包含 C1.WPF.4.dll。
- 因此,我得到一个运行时错误。
虽然我可以在我的 App 项目中包含对 C1.WPF.4.dll 的引用,但我宁愿不这样做。
有一个更好的方法吗?
wpf - F# FsXaml:哪些控件支持哪些事件?
<Button Click="MyClickMethod" />
工作正常; XAML 类型提供程序MyClickMethod
在代码隐藏中公开为虚拟方法。
另一方面,override this.MyDoubleClickMethod (_, _)
得到漂亮的红色下划线<ListBox MouseDoubleClick="MyDoubleClickMethod" />
,当然我的程序无法编译。
如果ListBox
不支持事件,那么在我用三天时间编写应用程序之前知道这一点肯定会很高兴。FsXaml 是否在任何地方都有很好的文档记录(我不是指源代码)?我的问题普遍接受的解决方法是什么?
编辑:这是我的代码文件(减号AssemblyInfo.fs
和App.*
样板文件),按解决方案资源管理器顺序:
MainViewModel.fs:
MainView.xaml.fs:
MainView.xaml:
MainWindow.xaml.fs:
MainWindow.xaml:
.net - 如果 WPF 类更改,F# 无法加载 FSharp.Core
我正在使用FsXaml
以下代码
在 F# 代码中使用该行时program.Run (new ConfigUI())
,程序无法运行,调试窗口输出
但是,如果我将该行更改为(new Window())
,它可以正常工作并且我的 WPF 窗口会显示。我已经确保它ConfigUI.xaml
的FSharp.Core.dll
所有依赖项都在程序工作目录中,但我无法弄清楚为什么它无法加载程序集。
主函数从 C++ 程序外部调用,该程序使用ExecuteInDefaultAppDomain.
asynchronous - FsXaml 应用程序中的异步进度条
在我的F# (FsXaml/Code Behind)应用程序中,我想使用进度条而不像在 C# 中那样使用后台工作程序。根据互联网上的一篇文章(链接在这里),我尝试使用异步工作流。
我基于上述文章中的示例(在某种程度上)创建了代码,但它并没有像我预期的那样工作。当前线程(UI 线程)仍然被阻塞,就好像那里没有异步代码一样。不会切换到后台线程。只有在长时间运行的操作完成后才会激活进度条。删除onThreadPool函数没有任何效果。
我的问题是:我的代码有什么问题以及如何改正?
f# - 在 FsXaml 和 ElmishWPF 中更新 ProgressBar.Value
我正在尝试更新FsXaml 中的ProgressBar.Value。在 C# 中,我使用了下面提到的代码。我没有尝试在 F# 中实现 C# 方法,因为使用公共字段 ( myCaller ) 在我看来并不是一种功能方法(更不用说我不知道是否可以使用这个 C# F# 中的方法)。
我的问题是:F#(FsXaml/code behind)中用于更新ProgressBar.Value的最佳(或至少是好的)功能方法是什么?
编辑1:
删除了不相关的代码和文本。那些对 Elmish.WPF 不感兴趣的人请等到出现与 FsXaml 相关的答案。
编辑2:
埃尔米什.WPF
我尝试使用 Bent Tranberg 的评论和答案以及他出色的示例代码来处理ProgressBar问题。我的改编适用于for-loop,但不适用于List.map(i)/iter(i),这是我实际上需要进度条的集合函数。这是简化的代码:
文件:MainWindow.fs
即使将“i”索引与进度条值绑定对于 MainWindow 中的集合功能有效,它也不能解决问题。在现实生活中,用于处理进度条值的集合函数位于主窗口文件“上方”的其他文件中。像这样:
文件:MainLogicRight.fs
我知道(可能)无法将 pb 值与非索引函数(例如Array.collect )绑定。但重要的是 - 如何将 pb 值与List/Array.mapi/iteri (在本例中为 Array.Parallel.mapi)中的“i”索引绑定?
编辑3:
根据 Bent 的最后一个答案,我现在不相关的文本和评论已被删除。一个基于答案的例子是here。