代码之家  ›  专栏  ›  技术社区  ›  akaphenom

F#/SIlverlight绑定到代数数据类型

  •  1
  • akaphenom  · 技术社区  · 15 年前

    给定以下数据结构:

    type Candidate =  SalesRep of SalesRep | Analyst of Analyst
    
    type ScorableCandidate = {
        candidate: Candidate ;
        mutable comments: string ;
        mutable score: int ;
    }
    

    <telerik:GridViewDataColumn Header="First Name" DataMemberBinding="{Binding candidate.fname}" IsFilterable="False" Width="100"/>
    

    我不这么认为,因为绑定语法需要能够解构类型—我认为这是不可能的。

    谢谢

    1 回复  |  直到 15 年前
        1
  •  1
  •   Tomas Petricek    15 年前

    我相信你应该不会在访问 candidate

    关于歧视联盟-我喜欢的建议,使用自定义类型转换器朱丽叶建议。另一个更简单的选择是公开 fname SalesRep Analyst Candidate

    type Candidate = 
      | SalesRep of SalesRep 
      | Analyst of Analyst 
      member x.Name = 
        match x with
        | SalesRep s -> s.fname
        | Analyst a -> a.fname
    

    然后您应该能够使用标准的WPF绑定语法来绑定属性。

    推荐文章