VB Visual Basic  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

WPF и привязка данных

Тест по теме «WPF и привязка данных» состоит из 25 вопросов: нужно читать код, сравнивать близкие решения, находить границы применимости правил и разбирать последствия ошибок. Заданий с кодом — 15; после каждого ответа открывается объяснение.

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На тест отведено 70 минут; после ответа можно открыть объяснение.
Вопрос 1 из 25
Раздел «Разметка XAML»: какое утверждение позволяет предсказать поведение фрагмента по правилам Visual Basic и .NET?
HTML/XMLXAML · привязка WPF
<Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid>
        <TextBox Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" />
    </Grid>
</Window>
Вопрос 2 из 25
Раздел «Разметка XAML»: какой комментарий к изменению будет технически обоснован?
HTML/XMLXAML · привязка WPF
<Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Window.Resources>
        <Style x:Key="EditorText" TargetType="TextBox">
            <Setter Property="MinWidth" Value="180" />
        </Style>
    </Window.Resources>
    <Grid>
        <TextBox Style="{StaticResource EditorText}"
                 Text="{Binding Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
    </Grid>
</Window>
Вопрос 3 из 25
Раздел «Разметка XAML»: для фрагмента с Window добавляют регрессионный тест. Какой контракт он должен защищать?
HTML/XMLXAML · привязка WPF
<Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <StackPanel DataContext="{Binding Editor}">
        <TextBlock Text="{Binding Name}" />
        <TextBox Text="{Binding Name, UpdateSourceTrigger=LostFocus}" />
    </StackPanel>
</Window>
Вопрос 4 из 25
Раздел «Разметка XAML»: что нужно сделать частью контракта рабочего модуля?
Вопрос 5 из 25
Какое утверждение точнее отделяет «Разметка XAML» от соседних механизмов?
Вопрос 6 из 25
Раздел «Привязка Binding»: в примере с EditorViewModel важна не форма записи, а поведение. Какое утверждение его описывает?
Visual Basic / VB.NETVisual Basic · WPF и привязка данных
Class EditorViewModel
    Public Property Name As String
End Class
Public Class MainWindow
    Public Sub New(vm As EditorViewModel)
        InitializeComponent()
        DataContext = vm
    End Sub
End Class
Вопрос 7 из 25
Раздел «Привязка Binding»: на ревью предлагают упростить участок с EditorViewModel. Какое замечание защищает поведение программы, а не стиль записи?
Visual Basic / VB.NETVisual Basic · WPF и привязка данных
Option Strict On
Namespace ReviewCase18_2
    Class EditorViewModel
        Public Property Name As String
    End Class
    Public Class MainWindow
        Public Sub New(reviewVm As EditorViewModel)
            InitializeComponent()
            DataContext = reviewVm
        End Sub
    End Class
End Namespace
Вопрос 8 из 25
Раздел «Привязка Binding»: для фрагмента с EditorViewModel добавляют регрессионный тест. Какой контракт он должен защищать?
Visual Basic / VB.NETVisual Basic · WPF и привязка данных
Option Explicit On
Option Infer On
Namespace BoundaryCase18_2
    Class EditorViewModel
        Public Property Name As String
    End Class
    Public Class MainWindow
        Public Sub New(edgeVm As EditorViewModel)
            InitializeComponent()
            DataContext = edgeVm
        End Sub
    End Class
End Namespace
Вопрос 9 из 25
Раздел «Привязка Binding»: как уменьшить риск дефекта, не подменяя причину запасным значением?
Вопрос 10 из 25
Что можно считать надёжным рабочим правилом для раздела «Привязка Binding»?
Вопрос 11 из 25
Раздел «Уведомления об изменении свойств»: какое утверждение позволяет предсказать поведение фрагмента по правилам Visual Basic и .NET?
Visual Basic / VB.NETVisual Basic · WPF и привязка данных
Imports System.ComponentModel
Imports System.Runtime.CompilerServices
Class EditorViewModel
    Implements INotifyPropertyChanged
    Private _name As String
    Public Property Name As String
        Get : Return _name : End Get
        Set(value As String)
            If _name = value Then Return
            _name = value
            RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(NameOf(Name)))
        End Set
    End Property
    Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
End Class
Вопрос 12 из 25
Раздел «Уведомления об изменении свойств»: какое ограничение нельзя убрать только потому, что обычный пример проходит?
Visual Basic / VB.NETVisual Basic · WPF и привязка данных
Option Strict On
Imports System.ComponentModel
Imports System.Runtime.CompilerServices
Namespace ReviewCase18_3
    Class EditorViewModel
        Implements INotifyPropertyChanged
        Private _name As String
        Public Property Name As String
            Get : Return _name : End Get
            Set(value As String)
                If _name = value Then Return
                _name = value
                RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(NameOf(Name)))
            End Set
        End Property
        Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
    End Class
End Namespace
Вопрос 13 из 25
Раздел «Уведомления об изменении свойств»: какое допущение стоит нарушить отдельно, чтобы проверка действительно ловила ошибку?
Visual Basic / VB.NETVisual Basic · WPF и привязка данных
Option Explicit On
Option Infer On
Imports System.ComponentModel
Imports System.Runtime.CompilerServices
Namespace BoundaryCase18_3
    Class EditorViewModel
        Implements INotifyPropertyChanged
        Private _name As String
        Public Property Name As String
            Get : Return _name : End Get
            Set(value As String)
                If _name = value Then Return
                _name = value
                RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(NameOf(Name)))
            End Set
        End Property
        Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
    End Class
End Namespace
Вопрос 14 из 25
Раздел «Уведомления об изменении свойств»: что нужно сделать частью контракта рабочего модуля?
Вопрос 15 из 25
Что точнее всего описывает механизм «Уведомления об изменении свойств»?
Вопрос 16 из 25
Раздел «Команды интерфейса»: какой разбор этого кода останется точным после переименования переменных?
Visual Basic / VB.NETVisual Basic · WPF и привязка данных
Class SaveCommand
    Implements ICommand
    Private ReadOnly canSave As Func(Of Boolean)
    Private ReadOnly save As Action
    Public Function CanExecute(parameter As Object) As Boolean Implements ICommand.CanExecute
        Return canSave()
    End Function
    Public Sub Execute(parameter As Object) Implements ICommand.Execute
        save()
    End Sub
    Public Event CanExecuteChanged As EventHandler Implements ICommand.CanExecuteChanged
End Class
Вопрос 17 из 25
Раздел «Команды интерфейса»: какой вывод должен пережить рефакторинг этого фрагмента?
Visual Basic / VB.NETVisual Basic · WPF и привязка данных
Option Strict On
Namespace ReviewCase18_4
    Class SaveCommand
        Implements ICommand
        Private ReadOnly canSave As Func(Of Boolean)
        Private ReadOnly save As Action
        Public Function CanExecute(parameter As Object) As Boolean Implements ICommand.CanExecute
            Return canSave()
        End Function
        Public Sub Execute(parameter As Object) Implements ICommand.Execute
            save()
        End Sub
        Public Event CanExecuteChanged As EventHandler Implements ICommand.CanExecuteChanged
    End Class
End Namespace
Вопрос 18 из 25
Раздел «Команды интерфейса»: обычный сценарий проходит. Что следует закрепить отдельным граничным тестом?
Visual Basic / VB.NETVisual Basic · WPF и привязка данных
Option Explicit On
Option Infer On
Namespace BoundaryCase18_4
    Class SaveCommand
        Implements ICommand
        Private ReadOnly canSave As Func(Of Boolean)
        Private ReadOnly save As Action
        Public Function CanExecute(parameter As Object) As Boolean Implements ICommand.CanExecute
            Return canSave()
        End Function
        Public Sub Execute(parameter As Object) Implements ICommand.Execute
            save()
        End Sub
        Public Event CanExecuteChanged As EventHandler Implements ICommand.CanExecuteChanged
    End Class
End Namespace
Вопрос 19 из 25
Какое решение соответствует реальному времени жизни объектов и правилам «Команды интерфейса»?
Вопрос 20 из 25
Что точнее всего описывает механизм «Команды интерфейса»?
Вопрос 21 из 25
Раздел «Безопасность данных»: в примере с LoginViewModel важна не форма записи, а поведение. Какое утверждение его описывает?
Visual Basic / VB.NETVisual Basic · WPF и привязка данных
Class LoginViewModel
    Public Property UserName As String
    Public Property Password As String

    Public Function Validate() As Boolean
        If String.IsNullOrWhiteSpace(UserName) Then Return False
        If String.IsNullOrEmpty(Password) Then Return False
        Return UserName.Length >= 3 AndAlso Password.Length >= 12
    End Function
End Class
Вопрос 22 из 25
Раздел «Безопасность данных»: что следует зафиксировать в ревью, чтобы ошибка не переехала из сборки в выполнение?
Visual Basic / VB.NETVisual Basic · WPF и привязка данных
Option Strict On
Namespace ReviewCase18_5
    Class LoginViewModel
        Public Property UserName As String
        Public Property Password As String

        Public Function Validate() As Boolean
            If String.IsNullOrWhiteSpace(UserName) Then Return False
            If String.IsNullOrEmpty(Password) Then Return False
            Return UserName.Length >= 4 AndAlso Password.Length >= 13
        End Function
    End Class
End Namespace
Вопрос 23 из 25
Раздел «Безопасность данных»: для участка с LoginViewModel нужен отрицательный тест. Какой контракт стоит проверить, меняя только одно условие?
Visual Basic / VB.NETVisual Basic · WPF и привязка данных
Option Explicit On
Option Infer On
Namespace BoundaryCase18_5
    Class LoginViewModel
        Public Property UserName As String
        Public Property Password As String

        Public Function Validate() As Boolean
            If String.IsNullOrWhiteSpace(UserName) Then Return False
            If String.IsNullOrEmpty(Password) Then Return False
            Return UserName.Length >= 2 AndAlso Password.Length >= 11
        End Function
    End Class
End Namespace
Вопрос 24 из 25
Раздел «Безопасность данных»: что здесь важнее локального удобства: какой контракт должен быть виден в коде?
Вопрос 25 из 25
Какое утверждение точнее отделяет «Безопасность данных» от соседних механизмов?

Ответьте на все 25 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу