Domanda

Data una struttura di dati di:

type Candidate =  SalesRep of SalesRep | Analyst of Analyst

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

e una griglia di dati che vuole essere in grado di visualizzare uno dei due candidati, è possibile bind (utilizzando il WPF vincolante) alla ScorableCandidate?

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

Io sono non pensare, come la sintassi di associazione sarebbe bneed essere in grado di destrutturare il tipo -., Che non credo sia possibile

Thx

T

È stato utile?

Soluzione

Credo che non si dovrebbe avere alcuna difficoltà ad accedere al campo candidate del tipo di record (perché i campi dei record appaiono come proprietà standard NET).

Per quanto riguarda l'Unione discriminata - mi piace il suggerimento di tipo convertitori utilizzo personalizzate come suggerisce Giulietta. Un'altra opzione più semplice sarebbe quella di esporre il campo fname (che è condiviso da entrambi SalesRep e Analyst se ho capito bene il tuo esempio) come una proprietà del tipo Candidate:

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

Poi si dovrebbe essere in grado di utilizzare WPF standard di sintassi di associazione per il legame con le proprietà.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top