2009-06-09 8 views
1

XAMLSilverlight 3 Dataform - Wie bevölkern DataFormComboBoxField aus Aufzählung

<df:DataForm x:Name="MobCrud" 
     AutoEdit="True" 
     AutoCommit="True" 
     AutoGenerateFields="False" 
     VerticalAlignment="Top"  
     CommandButtonsVisibility="All" 
     Header="Mob Details" 
     CanUserAddItems="True" 
     CanUserDeleteItems="True" 
     CurrentItem="{StaticResource newMob}" 
    > 
<df:DataForm.Fields> 
    <df:DataFormTextField Binding="{Binding Name}" FieldLabelContent="Name" /> 
    <df:DataFormTextField Binding="{Binding Title}" FieldLabelContent="Title"/> 
    <df:DataFormComboBoxField x:Name="AuraList" Binding="{Binding Aura}" FieldLabelContent="Aura"/> 
</df:DataForm.Fields> 

Code:

public enum Auras 
{ 
    Holy, 
    Fire, 
    Frost, 
} 

public class MobDetail : IEditableObject 
{ 
    public string Name { get; set; } 
    public string Title { get; set; } 
    public Auras Aura { get; set; } 

    public override string ToString() { return Name; } 

    public void BeginEdit(){} 
    public void EndEdit(){} 
    public void CancelEdit(){} 
} 

Die Dataform Itemssource an eine ObservableCollection gebunden ist()

Was benötige ich tun, um das Dropdown zu füllen und zu initialisieren?

Antwort

1

Antwort ist ein Konverter zu verwenden:

<df:DataFormComboBoxField 
    x:Name="AuraList" 
    Binding="{Binding Aura, Mode=TwoWay, 
       Converter={StaticResource enumSelectedValueConverter}}" 
    FieldLabelContent="Aura"/> 

und die Itemssource-Set auf dem Formular Loaded Ereignis

(MobCrud.Fields[2] as DataFormComboBoxField).ItemsSource = 
       Enums.GetStringArray(typeof(Auras)); 

Sehen Sie hier für die ganze Geschichte:

Creating-Rich-Data-Forms-in-Silverlight-3-Customization

Verwandte Themen