问题标签 [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.

0 投票
1 回答
171 浏览

wpf - 在 .fs 文件中引用来自 .xaml 文件的事件

我想在 XAML 文件中声明一个事件,然后在 fs 文件中添加一个处理程序。

XAML 文件的上半部分类似于 (MouseRightButtonDown):

F# 文件包含:

有没有简单的方法来建立链接?

0 投票
2 回答
318 浏览

xaml - FsXaml 类型提供程序相对于 XamlReader 的优势

F# 不支持部分类也不支持 XAML 文件的预编译。解决方法:在运行时加载图形对象定义,而不是后面的编译时代码。有多种方法可以为 XamlReader 提供引用的资源文件的内容。

类型提供者应该能够将至少部分工作转移回编译时。

类型安全(和发现)的收益似乎是微不足道的:每个资源的一种运行时类型转换更少。还有其他优点吗?

0 投票
2 回答
256 浏览

wpf - FSC:错误 FS2024:静态链接可能不使用针对不同配置文件的程序集与 oxyplot 示例和 FsXaml

我正在oxyplot使用fsxamlgjallarhorn。它在直接使用它并绑定到 DataPoint(x,y) 的输出时起作用。但是,当我从SimpleDemoFsharp尝试以下示例时:

构建失败,FSC: error FS2024: Static linking may not use assembly that targets different profile.错误似乎是由这一行引起的:myModel.Series.Add(FunctionSeries(cos, 0.0, 10.0, 0.1, "cos(x)")),如果我取消注释它,项目就会编译。我曾尝试针对较低的 .NET 版本,并创建新项目,但没有取得多大成功。有解决方法吗?从搜索看来,这可能会导致一些 PCL 配置文件问题。

该示例自行编译和工作(即没有安装其他 nuget 包,只安装了 oxyplot 和 oxyplot.wpf)。

编辑:经过进一步测试,问题似乎来自 FsXaml 和 Oxyplot 的组合。例如,当尝试通过 FsXaml 加载 MainWindow.xaml 时。

VS2015 的 fsc.exe 命令如下:

C:\Program Files (x86)\Microsoft SDKs\F#\4.0\Framework\v4.0\fsc.exe -o:obj\x64\Debug\Gjallarhorn160611.exe -g --debug:full --noframework --define :DEBUG --define:TRACE --doc:bin\Debug\Gjallarhorn160611.XML --optimize- --platform:x64 --resource:obj\x64\Debug\Gjallarhorn160611.g.resources -r:"C:\Program文件 (x86)\Reference Assemblies\Microsoft\FSharp.NETFramework\v4.0\4.4.0.0\FSharp.Core.dll" -r:"C:\Users\username\Documents\Visual Studio 2015\Projects\Gjallarhorn160611_A\packages \FsXaml.Wpf.2.1.0\lib\net45\FsXaml.Wpf.dll" -r:"C:\Users\用户名\Documents\Visual Studio 2015\Projects\Gjallarhorn160611_A\packages\FsXaml.Wpf.2.1.0\ lib\net45\FsXaml.Wpf.TypeProvider.dll" -r:"C:\Users\username\Documents\Visual Studio 2015\Projects\Gjallarhorn160611_A\packages\Gjallarhorn.Bindable.0.0。3-beta1\lib\portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1\Gjallarhorn.Bindable.dll" -r:"C:\Users\username\Documents\Visual Studio 2015\Projects\Gjallarhorn160611_A\packages\Gjallarhorn .Bindable.Wpf.0.0.3-beta1\lib\net45\Gjallarhorn.Bindable.Wpf.dll" -r:"C:\Users\username\Documents\Visual Studio 2015\Projects\Gjallarhorn160611_A\packages\Gjallarhorn.0.0。 3-beta1\lib\portable-net45+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1\Gjallarhorn.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\ mscorlib.dll" -r:"C:\Users\username\Documents\Visual Studio 2015\Projects\Gjallarhorn160611_A\packages\OxyPlot.Core.1.0.0-unstable2100\lib\net45\OxyPlot.dll" -r:"C :\Users\用户名\Documents\Visual Studio 2015\Projects\Gjallarhorn160611_A\packages\OxyPlot.Wpf。1.0.0-unstable2100\lib\net45\OxyPlot.Wpf.dll" -r:"C:\Users\username\Documents\Visual Studio 2015\Projects\Gjallarhorn160611_A\packages\OxyPlot.Wpf.1.0.0-unstable2100\lib \net45\OxyPlot.Xps.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\PresentationCore.dll" -r:"C:\Program Files (x86 )\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\PresentationFramework.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\System.Core.dll " -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\System.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework .NETFramework\v4.5\System.Numerics.dll" -r:"C:\Users\username\Documents\Visual Studio 2015\Projects\Gjallarhorn160611_A\packages\Expression.Blend.Sdk.1.0.2\lib\net45\System.Windows.Interactivity.dll" -r:"C:\Program Files (x86 )\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\System.Xaml.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\System.Xml .dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\UIAutomationTypes.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft \Framework.NETFramework\v4.5\WindowsBase.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Collections.Concurrent.dll" - r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Collections.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.ComponentModel.Annotations.dll" -r:" C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.ComponentModel.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework. NETFramework\v4.5\Facades\System.ComponentModel.EventBasedAsync.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Diagnostics.Contracts。 dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Diagnostics.Debug.dll" -r:"C:\Program Files (x86) \Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System。Diagnostics.Tools.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Diagnostics.Tracing.dll" -r:"C:\Program文件 (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Dynamic.Runtime.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\ v4.5\Facades\System.Globalization.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.IO.dll" -r:" C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Linq.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework. NETFramework\v4.5\Facades\System.Linq.Expressions.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Linq.Parallel.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework. NETFramework\v4.5\Facades\System.Linq.Queryable.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Net.NetworkInformation。 dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Net.Primitives.dll" -r:"C:\Program Files (x86) \Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Net.Requests.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\ Facades\System.ObjectModel.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Reflection.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\ v4.5\Facades\System.Reflection.Emit.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Reflection.Emit.ILGeneration。 dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Reflection.Emit.Lightweight.dll" -r:"C:\Program Files ( x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Reflection.Extensions.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4. 5\Facades\System.Reflection.Primitives.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Resources.ResourceManager.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework. NETFramework\v4.5\Facades\System.Runtime.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Runtime.Extensions.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Runtime.InteropServices.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Runtime.InteropServices.WindowsRuntime.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\ Facades\System.Runtime.Numerics.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Runtime.Serialization.Json.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\ Framework.NETFramework\v4.5\Facades\System.Runtime.Serialization.Primitives.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System. Runtime.Serialization.Xml.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Security.Principal.dll" -r:"C: \Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.ServiceModel.Duplex.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework. NETFramework\v4.5\Facades\System.ServiceModel.Http.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.ServiceModel.NetTcp.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework. NETFramework\v4.5\Facades\System.ServiceModel.Primitives.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.ServiceModel.Security。 dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Text.Encoding.dll" -r:"C:\Program Files (x86) \Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Text.Encoding.Extensions.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4. 5\Facades\System.Text.RegularExpressions.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Threading.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\ v4.5\Facades\System.Threading.Tasks.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Threading.Tasks.Parallel。 dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Xml.ReaderWriter.dll" -r:"C:\Program Files (x86) \Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\Facades\System.Xml.XDocument.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\ Facades\System.Xml.XmlSerializer.dll" --target:exe --warn:3 --warnaserror:76 --vserrors --LCID:1033 --utf8output --fullpaths --flaterrors --subsystemversion:6.00 --highentropyva+ --sqmsessionguid:9587e2f2-adad-4417-931b-00c055df82f8 "C:\Users\username\AppData\Local\Temp.NETFramework,Version=v4 .5.AssemblyAttributes.fs" AssemblyInfo.fs Model.fs Context3.fs Program.fs

0 投票
1 回答
137 浏览

wpf - How to use FsXaml's CommandDependecy/(ies)

Here is what I have done using FsXaml

and in xaml

How can I use command dependecy of ViewModule to set x.ListOfData instead of calling returnPrice(value) in setter of x.SelectedId?

0 投票
1 回答
218 浏览

wpf - 无法加载 FsXaml.Wpf.TypeProvider

我正在尝试将 WPF 与 F# 一起使用。我已经使用 F# Empty Windows App 模板创建了一个项目(事实上,我已经使用不同的设置创建了几个)。然后我添加了 FSharp.ViewModule 和 FsXaml.Wpf 引用。当项目只有 MainWindow.xaml 和 MainWindow.xaml.fs 时,它工作正常。但是,一旦我添加了另一个 .xaml 视图文件和 .fs ViewModel 文件,我就会在 .fs 文件顶部的“命名空间 ViewModels”声明中收到以下错误:

“FsXaml 加载错误”一文中描述了一个类似的问题(我无法添加评论,因为我没有足够的声誉)。但我已经尝试了那里给出的两个答案——更改 CPU 和 F# 运行时——但都没有。

我在 Windows 7 SP1 64 位虚拟机中使用 Visual Studio 2015 社区版。我尝试使用以下框架和 DLL 版本:

  • NET 框架 4.5 和 4.6
  • F# 3.0 和 4.0
  • FSharp.ViewModule 0.9.9 和 0.9.9.3
  • FsXaml.Wpf 2.0.0 和 2.1.0

编辑 1:在回复下面 Reed 的评论时,这是我的两个显示错误的代码文件。首先,MainWindow.xaml.fs:

这是Dialog.fs:

在这两个文件中,我namespace ViewModelsXAML. 该项目将在它只有 MainWindow.xaml.fs 时构建,但自从我添加了 Dialog.fs

编辑 2:这是我的 .fsproj 文件

编辑 3:App.fs 给出错误“未定义字段、构造函数或成员 'Root'。

并且 packages.config 给出警告“未声明 'packages' 元素”。

0 投票
1 回答
59 浏览

f# - 如何在执行异步任务时保持按钮启用

在我的xaml我有一个 Button 和一个 TextBlock

在我的 ViewModel 我有以下代码

当我单击该按钮时,它会被禁用并保持不变,直到完成asyncTask. 我认为设置canExecuteastrue会改变行为,但事实并非如此!

如何控制按钮的行为?

0 投票
1 回答
143 浏览

wpf - 添加 WindowsFormsHost 会引发 XamlParseException

我试图使用FSharp.Chartingin添加折线图MainWindow。在 MainViewModel 我有 -

在 xaml -

当我启动应用程序时,我会得到XamlParseException以下附加信息 -

如何解决问题?


这是@Foggy Finder。我已经删除了几行定义 TextBlock 和 Buttons。

0 投票
1 回答
61 浏览

f# - 如何在 FsXaml 中使用 Crystal Report

我通过右键单击解决方案资源管理器中的项目添加Report.rpt了一个文件。Report.fsReport.fs我声明了两个 TypeReport()CachedReport(),它们在 C# 中是自动生成的,并通过查看.csCrystalReport 在 C# WPF Projet 中生成的文件在其中添加了 F# 代码。在 Xaml 我有

在 ViewModel 中

当我启动应用程序时,我可以看到 CrystalReport Viewer。如果我单击按钮应用程序将自动关闭。

如果我双击Report.rpt弹出一个对话框并说This document could not be opened

如何在 F# WPF 中使用它?F# WPF 还有其他报告工具吗?

0 投票
0 回答
135 浏览

wpf - SpeechSynthesizer 的内存使用情况

我编写了一个应用程序,使用SpeechSynthesizer它可以读出TextBox. 在我的 ViewModel 中,我创建了该类的单个实例并重写Finalize了处理方法。当我在其中粘贴一些文本TextBox并继续单击按钮时,我看到内存使用量不断增加。在我的应用程序中,我有四个按钮Play, Pause, ResumeStop/Clear. 在我的 ViewModel 我有以下代码

并在 Xaml

我的代码有什么问题吗?

0 投票
1 回答
1212 浏览

wpf - 在 F# WPF MVVM 应用程序中绑定到 TextBox 的 TextChanged 事件

我想在使用 FsXaml 和 FSharp.ViewModule 构建的 MVVM F# 应用程序中绑定到 WPF 文本框。我向此处描述的应用程序添加了一个名为“SetA”的命令,并尝试使用以下 XAML 绑定到它:

TextBox 是从 ScoreA 属性正确填充的,但是当我在 TextBox 中键入新值时,不会调用 SetA 命令。我对 F# 很满意,但这是我的第一个 WPF MVVM 应用程序,所以我不确定我做错了什么。当用户更改文本值时,如何触发我的 SetA 处理程序?

这是我的视图模型:

我只添加了定义 SetA 的一行。