2011-04-01 32 views
2

我有一个记录类型是这样的:F#:一个复杂的记录类型和一个DataGridView

type Rule = {extension: string seq; subdir: string} 
let rules : Rule list = // ... 

我要绑定它的实例的DataGridView。我的所有UI逻辑都是用C#实现的。做这个的最好方式是什么?只需在我的C#项目中引用FSharp.Core并绑定?或者做一些这样的简单记录

type SimpleRule = {extension: string; subdir: string} 

和一个将规则列表转换为SimpleRule seq的函数,它在C#中表示为IEnumerable。 第二种方式似乎是最好的,因为我不需要做出FSharp.Core一个参考,我将与IEnumerable的工作,但有太多的转换代码和我有写它的问题。也许有更好的方法来解决这个问题?

+0

你能解释一下到DataGridView绑定必须 - 例如,你想两列,一个用于扩展和一个子目录? – 2011-04-01 18:04:58

+0

你将有一个很难结合到一个记录类型,如果你希望绑定是双向的。你需要一个可变对象。 – 2011-04-01 20:37:02

+4

您可以在F#这里开发C# - 友好成分通常一些有用的提示:http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/fsharp-component-design-guidelines。 pdf – 2011-04-01 23:01:39

回答

0

我结束了使用可变记录。此外,我为我的库创建了一些包装类,它们有几种方法来添加/删除规则并应用它们,所以我不使用任何F#类(例如C#中的FSharpList)。

+1

你能向我们展示一些关于你如何得到这个工作的代码吗? – 2015-03-09 12:16:56