Изменение или доступ к элементу управления в форме редактирования формы данных Silverlight - PullRequest
2 голосов
/ 14 апреля 2010

Сегодня я столкнулся с интересной проблемой, играя с элементом управления Silverlight Data Form. Я хотел изменить видимость определенного элемента управления в связанном шаблоне редактирования .. см. Xaml ниже.

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

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

1 Ответ

3 голосов
/ 15 апреля 2010

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

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

 }

В моем реальном XAML я бы привязал к элементу управления Visibility Property что-то вроде этого:

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

Надеюсь, это поможет Приветствия

...