给定数据结构:

type Candidate =  SalesRep of SalesRep | Analyst of Analyst

type ScorableCandidate = {
    candidate: Candidate ;
    mutable comments: string ;
    mutable score: int ;
}

并且希望能够显示任何一个候选者的数据网格,是否可以将(使用WPF绑定)绑定到ScorableCandidate?

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

我不认为,因为具有约束力的语法将能够解构类型 - 我认为这是不可能的。

谢谢

t

有帮助吗?

解决方案

我相信您不应该在访问 candidate 记录类型的字段(因为记录字段以标准.NET属性出现)。

关于歧视的联盟 - 我喜欢按照朱丽叶的建议使用自定义类型转换器的建议。另一个简单的选择是公开 fname 字段(两者共享 SalesRepAnalyst 如果我正确理解您的示例)是 Candidate 类型:

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top