2009-06-09 1 views
1

XAMLSilverlight 3 DataForm - Как заполнить DataFormComboBoxField из перечисления

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

Код:

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(){} 
} 

DataForm ItemsSource привязан к ObservableCollection()

Что мне нужно сделать, чтобы заполнить и инициализировать выпадающий список?

ответ

1

Ответ использовать преобразователь:

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

и установить ItemsSource на форме Loaded события

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

Смотрите здесь для полного рассказа:

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

 Смежные вопросы

  • Нет связанных вопросов^_^