2010-04-14 4 views
2

Je suis tombé sur un problème intéressant aujourd'hui en jouant avec le contrôle Formulaire de données Silverlight. Je voulais changer la visibilité d'un contrôle particulier dans le modèle d'édition lié. Voir xaml ci-dessous.Modification ou accès à un contrôle dans un formulaire de données Silverlight Modifier un modèle

<df:DataForm x:Name="NoteFormEdit" ItemsSource="{Binding Mode=OneWay}" AutoGenerateFields="True" 
       AutoEdit="True" AutoCommit="False" 
       CommitButtonContent="Save" 
       CancelButtonContent="Cancel"    
       CommandButtonsVisibility="Commit" 
       LabelPosition="Top" ScrollViewer.VerticalScrollBarVisibility="Disabled" 
       EditEnded="NoteForm_EditEnded"> 
     <df:DataForm.EditTemplate> 
      <DataTemplate> 
       <StackPanel> 
        <df:DataField> 
         <TextBox Text="{Binding Title, Mode=TwoWay}"/> 
        </df:DataField> 

        <df:DataField> 
         <TextBox Text="{Binding Description, Mode=TwoWay}" AcceptsReturn="True" HorizontalScrollBarVisibility="Auto" 
           VerticalScrollBarVisibility="Auto" Height="" TextWrapping="Wrap" SizeChanged="TextBox_SizeChanged"/> 
        </df:DataField> 

        <df:DataField> 
         <TextBlock Text="{Binding Username}" x:Name="tbUsername"/> 
        </df:DataField> 

        <df:DataField> 
         <TextBlock Text="{Binding DateCreated, Converter={StaticResource DateConverter}}" x:Name="tbDateCreated"/> 
        </df:DataField> 
       </StackPanel> 
      </DataTemplate> 
     </df:DataForm.EditTemplate> 
    </df:DataForm> 

Je voulais selon la façon dont le conteneur de cette forme de données a été consulté pour désactiver ou masquer les deux derniers champs de données. J'ai fait un travail autour de qui avait deux formes de données mais c'est un peu excessif! Est-ce que quelqu'un sait comment accéder à ces contrôles dans le modèle d'édition?

Répondre

3

Il y a peut-être une autre réponse à cela, mais j'ai créé une classe partielle pour ma classe de données et j'ai ajouté une propriété qui retourne l'énumération de Visibilité, puis définissez la visibilité dans le code le contrôle.

public partial class MyDataClass 
{ 
    public Visibility IsVisible { get; set; } 

} 

Dans mon XAML réelle je lier au contrôle Visibilité propriété quelque chose comme ceci:

<df:DataField>  
    <TextBlock Visibility="{Binding IsVisible }" Text="{Binding DateCreated, Converter={StaticResource DateConverter}}" x:Name="tbDateCreated"/>  

espoir qui aide Vive

Questions connexes