Свойства компонента холста (экспериментальная функция)

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

Важно!

Типы свойств

Разработчикам доступно четыре типа свойств:

  1. Свойства данных: свойства данных относятся к данным, например это может быть цвет или текстовое значение. Свойство Данные может быть установлено как Ввод или Вывод, что указывает, предоставляет ли компонент данные приложению (Вывод) или приложение предоставляет данные компоненту (Ввод). Свойства Данные — это единственные свойства, которые участвуют в потоке данных приложения.
  2. Свойства функции: свойства функции связаны с логикой, такой как выполнение вычислений на основе определенных параметров или изменение текста. Свойство Функция может быть установлено как Ввод или Вывод, что указывает, предоставляет ли компонент функцию приложению (Вывод) или приложение предоставляет функцию компоненту (Ввод). Свойства Функция не участвуют в потоке данных приложения и не могут использовать переменные компонента или приложения.
  3. Свойства действия: свойства действия — это тип свойства, который имеет дело с логикой и ведет себя как функция Вывод. Таким образом в компоненте определяется логика, и эта логика может использовать связанные выражения и манипулировать коллекциями или переменными ("поведение"). Например, свойство Действие Clear() может предоставлять функциональность, которую приложение может вызывать для очистки некоторых значений в компоненте, а свойство Действие Save() может изменять источник данных.
  4. Свойства событий: свойства событий — это категория свойств, которая включает в себя логику и функции в качестве функции Ввод. Таким образом в приложении определяется логика, которую компонент может вызывать. И эта логика может использовать связанные выражения и манипулировать коллекциями или переменными ("поведение"). Обычно имена этих свойств соответствуют событию, например OnSelect или OnChanged.

Свойство данных

Свойство данных работает очень легко. Стандартные элементы управления в приложениях обычно имеют несколько свойств данных для установки значений по умолчанию, цвета текста, размера текста и т. д. Рассмотрим простой пример, в котором мы хотим сделать свойства элемента управления в компоненте доступными для хост-приложения. В этом примере наш компонент называется Component1. Мы поместим внутри компонента ползунок. У нас будет свойство Ввода, чтобы получить цвет из приложения-потребителя, и свойство Вывода, в котором компонент может сообщить приложению, каково текущее значение ползунка. В следующем примере предполагается, что компонент содержит элемент управления Ползунок с именем Slider.

  1. На панели свойств компонента выберите Создать пользовательское свойство.
  2. На панели Новое пользовательское свойство введите отображаемое имя Slider Color.
  3. Выберите Тип свойства равный Данные и выберите для Определения свойства значение Ввод.
  4. Наконец, в раскрывающемся списке Тип данных выберите Цвет.
  5. Щелкните Создать.

Затем выберите элемент управления Ползунок Slider1. Найдите его свойство ValueFill и в строке формул введите Component1.SliderColor. Component1 относится к имени компонента, а SliderColor является именем свойства, которое мы добавили ранее.

Теперь у компонента есть свойство SliderColor, которое можно задать в приложении-потребителе, чтобы передать цвет в компонент для установки свойства ValueFill ползунка.

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

  1. На панели свойств компонента выберите Создать пользовательское свойство.
  2. На панели Новое пользовательское свойство введите отображаемое имя Slider Value.
  3. Выберите Тип свойства равный Данные и выберите для Определения свойства значение Вывод.
  4. Наконец, в раскрывающемся списке Тип данных выберите Число.
  5. Щелкните Создать.

Когда свойство Данные является Выводом, компонент предоставляет значение приложению-потребителю. Чтобы установить формулу для этого, нам нужно установить новое свойство SliderValue в компоненте равным свойству Значение ползунка.

  1. На панели свойств компонента выберите свойство Slider Value.
  2. В строке формул замените значение по умолчанию 100 на следующую формулу: Slider1.Value.

Теперь свойство SliderValue компонента будет отражать значение ползунка внутри компонента, которое затем можно будет прочитать из приложения-потребителя.

Свойство функции

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

Примечание

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

Функция Вывода — это простой способ создать пользовательскую функцию для Power Apps. Компонент определяет функцию Вывода с помощью выражения, которое принимает некоторые аргументы и возвращает значение. Затем эту функцию можно использовать в приложении, используя имя компонента (например, Component1) и вызов Component1.MyFunction(arg1, arg2).

Функция Ввода — это способ для приложения-потребителя предоставить логику компоненту, подобно указателю на функцию или функции обратного вызова. Например, компонент может иметь дело с именами людей и иметь функцию ввода с аргументами firstname и lastname и возвращать строку. Приложение может определить возвращаемое функцией выражение $"{firstname} {lastname}" или $"{lastname}, {firstname}". Компонент может просто вызвать функцию, предоставленную разработчиком приложения, и использовать возвращенную строку.

Свойство действия

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

В примере с ползунком (Свойство данных выше) мы можем добавить свойство действия ResetValue, чтобы вернуть ползунок к значению по умолчанию. Для этого можно использовать формулу Reset( Slider1 ). Теперь экземпляры нашего компонента в приложении могут вызывать Component1.ResetValue(), чтобы вернуть ползунок к значению по умолчанию.

Свойство события

В стандартных элементах управления есть много стандартных свойств типа Событие, которые похожи на свойства функции типа "Ввод". OnSelect на кнопке — наиболее очевидный пример. Компонент может определять любое количество свойств событий и вызывать эти события как функцию. Например, компонент с элементом управления "кнопка" может иметь именованное свойство события OnButtonClicked. В элементе управления кнопкой OnSelect компонент может вызывать свое свойство Component1.OnButtonClicked(). Затем приложение-потребитель может определить собственную логику для этого свойства, чтобы оно действовало при нажатии кнопки внутри компонента.

Значения по умолчанию для свойств или аргументов

Значения по умолчанию могут предоставлять значение по умолчанию для аргумента или свойства, если оно не установлено. Это не имеет смысла для некоторых типов свойств. Однако в некоторых случаях их можно использовать для показа ожидаемой схемы записи. При предоставлении записи по умолчанию в качестве ожидаемой схеме вы устанавливаете тип записи.

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