F# / Silverlight代数データ型へのバインディング
-
01-10-2019 - |
質問
のデータ構造が与えられます:
type Candidate = SalesRep of SalesRep | Analyst of Analyst
type ScorableCandidate = {
candidate: Candidate ;
mutable comments: string ;
mutable score: int ;
}
また、いずれかの候補者を表示できるようにしたいデータグリッドは、ScorableCandidateにバインドすることができますか?
<telerik:GridViewDataColumn Header="First Name" DataMemberBinding="{Binding candidate.fname}" IsFilterable="False" Width="100"/>
バインディングの構文は、タイプを解体できるようにしていないので、私は考えていません。
どうも
t
解決
私はあなたがアクセスするのに苦労するべきではないと信じています candidate
レコードタイプのフィールド(レコードフィールドが標準の.NETプロパティとして表示されるため)。
差別された組合に関して - ジュリエットが示唆するように、カスタムタイプのコンバーターを使用するという提案が好きです。別のより簡単なオプションは、を公開することです 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バインディング構文を使用できるはずです。
所属していません StackOverflow