Pregunta

Dada una estructura de datos de:

type Candidate =  SalesRep of SalesRep | Analyst of Analyst

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

y una red de datos que quiere ser capaz de mostrar cualquiera de los candidatos, es posible que se unen (mediante la unión de WPF) a la ScorableCandidate?

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

No estoy pensando, ya que la sintaxis vinculante bneed para poder deconstruir el tipo -., Que no creo que es posible

Thx

T

¿Fue útil?

Solución

Creo que no debería tener problemas para acceder al campo de candidate del tipo de registro (porque los campos de registro aparecen como propiedades estándar de .NET).

En cuanto a la unión discriminada - Me gusta la sugerencia de convertidores de tipo uso personalizado tal y como sugiere Julieta. Otra opción más sencilla sería exponer el campo fname (que es compartida por ambos SalesRep y Analyst si entiendo tu ejemplo correctamente) como una propiedad 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

A continuación, debería ser capaz de utilizar la sintaxis de enlace para la unión a las propiedades de WPF estándar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top