【问题标题】:WPF Converter written in F# is not recognized无法识别用 F# 编写的 WPF 转换器
【发布时间】:2014-07-14 15:08:16
【问题描述】:

我在 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”在命名空间“clr-namespace:My.FSharpLibrary”中不存在。

有什么线索吗?

【问题讨论】:

    标签: wpf f# ivalueconverter


    【解决方案1】:

    呃!

    我必须将assembly=My.FSharpLibrary 添加到命名空间定义中

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      • 2023-03-15
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多