Таблица переходов может быть или массивом указателей на функции или массивом команд перехода машинного кода. Если у Вас есть относительно статический набор функций (таких как системные вызовы или виртуальные функции для класса) тогда, можно составить эту таблицу однажды и вызвать функции с помощью простого индекса в массив. Это означало бы получать указатель и вызывать функцию или переходить к машинному коду в зависимости от типа используемой таблицы.
преимущества выполнения этого во встроенном программировании:
, Если действительно стоит Вам крошечного бита производительности для доступа к таблице, но это не хуже, чем какой-либо другой вызов виртуальной функции.
Концептуально DataTemplates и UserControls решают две разные проблемы. На самом деле они не взаимозаменяемы, поэтому ваши сравнения не совсем точны.
DataTemplates - все о применении визуального стиля к DataType. Обычно это означает, что у меня есть собственный класс .NET под названием Foo, и я хочу придать ему визуальный стиль. Я бы сделал это, создав DataTemplate с DataType Foo.
Затем я могу поместить этот DataTemplate в свое приложение (скажем, в App.XAML), и мой визуальный стиль будет применяться к моему объекту данных Foo, где бы он ни использовался. . Часто это означает, что вы увидите ContentControl, у которого свойство Content привязано к свойству типа Foo.
UserControls на другом имеют все, что связано с организацией XAML. Пользовательский элемент управления помогает в организации фрагментов XAML, которые вы хотите повторно использовать в своем приложении, с привязанным к нему поведением и функциональностью. Это больше, чем просто DataTempate.
DataTemplate привязан к одному DataType и отображает визуальный элемент для этого типа. UserControl может состоять из нескольких типов данных и может включать в себя настраиваемые поведения.
При этом я очень редко нахожу необходимость в UserControl. Я использую DataTemplates повсюду для моделирования своих данных и реализации своего поведения с помощью привязок данных и шаблона MVVM.
Пользовательский элемент управления помогает в организации фрагментов XAML, которые вы хотите повторно использовать в своем приложении, с привязанным к нему поведением и функциональностью. Это больше, чем то, что может сделать DataTempate.DataTemplate привязан к одному DataType и отображает визуальный элемент для этого типа. UserControl может состоять из нескольких типов данных и может включать в себя настраиваемые поведения.
При этом я очень редко нахожу необходимость в UserControl. Я использую DataTemplates повсюду для моделирования своих данных и реализации своего поведения с помощью привязок данных и шаблона MVVM.
Пользовательский элемент управления помогает в организации фрагментов XAML, которые вы хотите повторно использовать в своем приложении, с привязанным к нему поведением и функциональностью. Это больше, чем то, что может сделать DataTempate.DataTemplate привязан к одному DataType и отображает визуальный элемент для этого типа. UserControl может состоять из нескольких типов данных и может включать в себя настраиваемые поведения.
При этом я очень редко нахожу необходимость в UserControl. Я использую DataTemplates повсюду для моделирования своих данных и реализации своего поведения с помощью привязок данных и шаблона MVVM.
UserControl может состоять из нескольких типов данных и может включать в себя настраиваемые поведения.При этом я очень редко нахожу необходимость в UserControl. Я использую DataTemplates повсюду для моделирования своих данных и реализации своего поведения с помощью привязок данных и шаблона MVVM.
UserControl может состоять из нескольких DataTypes и может включать настраиваемые поведения.При этом я очень редко нахожу необходимость в UserControl. Я использую DataTemplates повсюду для моделирования своих данных и реализации своего поведения с помощью привязок данных и шаблона MVVM.
Лично я создаю UserControl, а затем создаю из него DataTemplate. Для меня это дает следующие преимущества:
Примерно 2.
I Я бы сказал, что DataTemplates не предназначены для использования с выделенным кодом. В большинстве случаев вы можете использовать только DataBinding и Commands, чтобы связать логику между вашей моделью и ее представлением. Отсутствие кода программной части также упрощает модульное тестирование вашего приложения.