Est-il possible d'ajouter un fichier de données à Silverlight DataForm sans créer un modèle d'édition entier?

StackOverflow https://stackoverflow.com/questions/2036088

Question

J'utilise le DataForm pour une entité avec environ 40 attributs. Je suis content de la façon dont la forme affiche tous, mais 3 des attributs. Ces 3 attributs se trouvent des listes d'éléments.

Je ne veux pas avoir à coder sur un modèle d'édition entier, semble très contre-productif.

<dataFormToolkit:DataForm AutoGenerateFields="True" CurrentItem="{Binding XXX, Mode=TwoWay, Source={StaticResource XXXViewModel}}" >
                    <dataFormToolkit:DataField Label="Client"  >
                        <ListBox ItemsSource="{Binding Client}"></ListBox>
                    </dataFormToolkit:DataField>
                </dataFormToolkit:DataForm>
Était-ce utile?

Autres conseils

Il fonctionnera: essayer

    [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false)]
    public class IsPassword : System.Attribute { }

  public class CustomDataForm : DataForm
    {
        protected override void OnAutoGeneratingField(DataFormAutoGeneratingFieldEventArgs e)
        {
            // Get metadata about the property being defined
            PropertyInfo propertyInfo = this.CurrentItem.GetType().GetProperty(e.PropertyName);

            // Do the password field replacement if that is the case
            var attributes = propertyInfo.GetCustomAttributes(typeof(IsPassword), false).ToList();

            if (attributes.Any(obj=>obj is IsPassword))
            {
                PasswordBox box= new PasswordBox();
                Binding binding = new Binding(e.PropertyName);
                binding.Mode = BindingMode.TwoWay;
                box.SetBinding(PasswordBox.PasswordProperty, binding);
                e.Field.Content=box;            
            }
            base.OnAutoGeneratingField(e);
        }
    }

puis ajoutez [IsPassword] à votre propriété

Je suis sûr que ce n'est pas possible. Si je vous, j'avalerait ma douleur et de créer ce modèle d'édition.

La seule alternative que je peux voir est de travailler avec les données de votre viewmodel et créer une classe distincte qui détient les 37 propriétés qui ont besoin d'aucun changement. Ensuite, vous faites une entité distincte pour les 3 qui ont besoin d'une attention particulière. De cette façon, vous pourriez avoir deux formes de données, un autogénérés et une coutume. Nous espérons que vous pouvez travailler avec eux styling afin qu'ils ressemblent à une forme. Beaucoup de travail, je sais, mais il pourrait être encore plus de travail pour créer le modèle complet d'édition.

scroll top