2010-04-14 1 views
2

Сегодня я столкнулся с интересной проблемой, когда вы играете с элементом управления формой Silverlight. Я хотел изменить видимость конкретного элемента управления внутри связанного шаблона редактирования. См. Ниже xaml.Изменение или доступ к элементу управления в форме формы данных Silverlight. Редактирование шаблона

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

Я хотел в зависимости от того, как контейнер этой формы данных был доступен, чтобы отключить или скрыть последние два поля данных. Я сделал работу, у которой было две формы данных, но это немного излишне! Кто-нибудь знает, как получить доступ к этим элементам управления внутри шаблона редактирования?

ответ

3

Возможно, есть еще один ответ на этот вопрос, но то, что я сделал, было создать частичный класс для моего класса данных, а в частичном я добавил свойство, возвращающее перечисление видимости, затем установите видимость в коде позади перед привязкой к контроль.

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

} 

В моей фактической XAML я бы связываться с контроля видимости что-то собственности, как это:

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

Надежда, что помогает Приветствия