2014-07-14 4 views
0

я написал следующий конвертер в F #WPF конвертер написанный в F # не признается

namespace My.FSharpLibrary 

open System 
open System.Collections.Generic 
open System.Linq 
open System.Text 
open System.Threading.Tasks 
open System.Globalization 
open System.Windows.Data 

type ValueCompareConverter() = 
    member val ReferenceValue = Unchecked.defaultof<float> with get,set 
    interface IValueConverter with 
     member this.Convert(value,targetType,parameter,culture) = 
      let f = float (value.ToString()) 

      match parameter.ToString() with 
       | "LessThan" -> f < this.ReferenceValue :> obj 
       | "GreaterThan" -> f > this.ReferenceValue :> obj 
       | _ -> failwith "Invalid Converter parameter"; false :> obj 

     member this.ConvertBack(value,targetType,parameter,culture) = 
      failwith "Not implemented" 

Я могу видеть этот конвертер в Object Browser, но когда я добавить ссылку на свою библиотеку в моем C# WPF проекта и добавьте следующий код XAML код

... xmlns:helpers="clr-namespace:My.FSharpLibrary" ... 

... 

<helpers:ValueCompareConverter ReferenceValue="0.0" x:Key="compareToZeroConverter" /> 

Я получаю следующую ошибку

Ошибка 140 название "ValueCompareConverter" лань s не существует в пространстве имен «clr-namespace: My.FSharpLibrary».

Любые подсказки?

ответ

2

duh!

мне пришлось добавить assembly=My.FSharpLibrary в определение пространства имен

<Window xmlns:helpers="clr-namespace:My.FSharpLibrary;assembly=My.FSharpLibrary" />