2011-04-01 66 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