سؤال

بالنظر إلى بنية بيانات:

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"/>

أنا لا أفكر ، لأن بناء جملة الربط من شأنه أن يكون قادرًا على تفكيك النوع - وهو ما لا أعتقد أنه ممكن.

شكرًا

ر

هل كانت مفيدة؟

المحلول

أعتقد أنه لا ينبغي أن تواجه أي مشكلة في الوصول إلى 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 القياسي للربط بالخصائص.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top