Frage

Bei einer Datenstruktur:

type Candidate =  SalesRep of SalesRep | Analyst of Analyst

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

und ein Datengitter, das entweder des Kandidaten in der Lage sein will, anzuzeigen, ist es möglich, zu binden an der ScorableCandidate (die WPF-Bindung verwendet wird)?

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

Ich denke nicht, da die Bindungssyntax würde bneed der Lage sein, die Art zu dekonstruieren -., Die ich glaube nicht möglich ist,

Thx

T

War es hilfreich?

Lösung

Ich glaube, dass Sie keine Probleme beim Zugriff auf das candidate Feld des Satzart haben sollten (weil Datensatzfelder erscheinen als Standard .NET Eigenschaften).

Im Hinblick auf die diskriminierte union - Ich mag die Anregung zu verwenden benutzerdefinierten Typ Konvertern als Juliet vermuten lässt. Eine weitere einfachere Möglichkeit wäre, das fname Feld zu belichten als Eigenschaft des SalesRep Typs (die sowohl von Analyst und Candidate geteilt wird, wenn ich Ihr Beispiel richtig verstehe):

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

Dann sollten Sie in der Lage Standard WPF verwenden Bindungssyntax zu Eigenschaften für die Bindung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top