给定数据结构:
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"/>
我不这么认为,因为绑定语法会导致能够解构类型 - 我认为这是不可能的。
THX
Ť
答案 0 :(得分:1)
我相信您在访问记录类型的candidate
字段时不会遇到任何问题(因为记录字段显示为标准.NET属性)。
关于受歧视的联盟 - 我喜欢Juliet建议的使用自定义类型转换器的建议。另一个更简单的选择是将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绑定语法来绑定属性。