如何将Xamarin.Forms XAML文件添加到FSharp项目?
默认情况下,XAML文件具有C#代码隐藏。 我尝试将带有C#代码隐藏的XAML文件移动到F#项目中。 然后我将文件扩展名更改为" .fs"。 但是,我的尝试使VS2017崩溃了。
答案 0 :(得分:0)
修改强>
C#Views& F#ViewModels
我猜测WPF和Xamarin.Forms会以同样的方式看到它。您可以在C#项目中定义所有视图,并将ViewModel逻辑放在可移植类库(PCL)中。当View需要DataContext时,您可以直接在C#项目中引用ViewModel。这样,它的行为方式与C#ViewModel的行为方式相同。
如果你想要一个有效的例子,我发现这可以准确显示你可以做的事情:MVVM with F#
F#MVVM
如果您希望整个应用程序在同一项目中具有F#业务逻辑和XAML,则可以下载以下扩展名:Windows App in F#。通过指向指令中的FSharp.ViewModule,你会没事的。
将处理所有UI逻辑的视图模型。从中继承视图模型 ViewModelBase
你也可以找到这种事情的工作样本here
答案 1 :(得分:0)
“代码隐藏”文件在F#(缺少部分类)中不存在,甚至在C#中也很多人recommend keeping those files empty。
您可以使用.LoadFromXaml
加载Xaml文件,并使用.FindByName<'t>
访问对象。见Wintellect sample。您需要将名称指定为字符串和类型,以便不存在编译时安全性。
它不像WPF那样干净,它有一个类型提供程序(FsXaml),它提供对对象的类型访问。 Xamarin Forms的类型提供程序可能会在将来出现。
我个人更喜欢避免使用Xaml并在代码中执行所有操作,输入所有内容并且不依赖于字符串。