Поделиться через


PropertySet Класс

Определение

Представляет набор свойств, который представляет собой набор объектов PropertyValue со строковыми ключами.

public ref class PropertySet sealed : IIterable<IKeyValuePair<Platform::String ^, Platform::Object ^> ^>, IMap<Platform::String ^, Platform::Object ^>, IObservableMap<Platform::String ^, Platform::Object ^>, IPropertySet
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.FoundationContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.FoundationContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class PropertySet final : IIterable<IKeyValuePair<winrt::hstring, IInspectable const&>>, IMap<winrt::hstring, IInspectable const&>, IObservableMap<winrt::hstring, IInspectable const&>, IPropertySet
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.FoundationContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.FoundationContract")]
class PropertySet final : IIterable<IKeyValuePair<winrt::hstring, IInspectable const&>>, IMap<winrt::hstring, IInspectable const&>, IObservableMap<winrt::hstring, IInspectable const&>, IPropertySet
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.FoundationContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.FoundationContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class PropertySet : IDictionary<string,object>, IEnumerable<KeyValuePair<string,object>>, IObservableMap<string,object>, IPropertySet
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.FoundationContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.FoundationContract")]
public sealed class PropertySet : IDictionary<string,object>, IEnumerable<KeyValuePair<string,object>>, IObservableMap<string,object>, IPropertySet
function PropertySet()
Public NotInheritable Class PropertySet
Implements IDictionary(Of String, Object), IEnumerable(Of KeyValuePair(Of String, Object)), IObservableMap(Of String, Object), IPropertySet
Наследование
Object Platform::Object IInspectable PropertySet
Атрибуты
Реализации
IMap<K,V> IDictionary<K,V> IMap<String,Object> IDictionary<String,Object> IMap<Platform::String,Platform::Object> IMap<winrt::hstring,IInspectable> IIterable<IKeyValuePair<K,V>> IEnumerable<KeyValuePair<K,V>> IIterable<IKeyValuePair<String,Object>> IEnumerable<KeyValuePair<String,Object>> IIterable<IKeyValuePair<Platform::String,Platform::Object>> IIterable<IKeyValuePair<winrt::hstring,IInspectable>> IObservableMap<String,Object> IObservableMap<Platform::String,Platform::Object> IObservableMap<winrt::hstring,IInspectable> IPropertySet

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.FoundationContract (появилось в v1.0)

Комментарии

Этот класс реализует сопоставление (интерфейс IMap<K,V> ) с ключами типа String и значениями типа PropertyValue. Тип PropertySet позволяет различным API среда выполнения Windows возвращать коллекцию смешанных значений, которые по-прежнему можно итерировать или проверить с помощью общих API коллекции PropertySet, которые соответствуют методам коллекции IMap<K, V>, IDictionary<TKey, TValue> или JavaScript и методов перечисления, в зависимости от того, какой язык использует приложение.

PropertyValue — это класс, поддерживающий большое количество статических методов Create*, которые создают намеренно нетипизированное значение из входных данных, которые обычно являются типом значения или примитивом (логические значения, числа и т. д.) или массивом этих значений. После вызова одного из статических методов PropertyValue его возвращаемое значение можно рассматривать как экземпляр PropertyValue (однако методы Create* технически возвращают Объект , если посмотреть на сигнатуры).

Однако обычно свойство PropertySet не используется способом, требующим самостоятельного заполнения значений PropertyValue в наборе. Вместо этого вы обычно получаете заполненное свойство PropertySet в качестве возвращаемого значения из API среда выполнения Windows, предоставляющего коллекцию, в которой типы значений в нем могут быть смешанными, но по-прежнему связаны друг с другом по источнику или сценарию. Например, значения LocalSettings и RoamingSettings , которые вы получаете при извлечении данных приложения, относятся к типу ApplicationDataContainer, и каждое из них содержит PropertySet в качестве значения свойства Values . При взаимодействии с данными приложения, в котором хранятся параметры, вы обычно получаете коллекцию из ApplicationDataContainer.Values. После этого вы сможете:

  • Итерация по набору с помощью соответствующего синтаксиса итерации
  • используйте HasKey/ContainsKey , чтобы проверить существование PropertyValue в наборе
  • используйте поиск или индексатор элементов , чтобы получить элемент, как только вы знаете, что он существует

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

Существуют и другие API-интерфейсы среда выполнения Windows, которые используют значение PropertySet в качестве прямого значения, а не упакованы в другой класс, например ApplicationDataContainer. Например, CoreApplication.Properties возвращает свойство PropertySet.

Различные свойства, сообщающие сведения с носителя и устройств, используют PropertySet, например PlayToReceiver.Properties. Однако существуют и другие наборы свойств мультимедиа и устройств, которые не используют PropertySet, а вместо этого используют MediaPropertySet, так как идентификатор для этих свойств лучше представить, если ключ имеет идентификатор GUID , а не строку.

Во многих случаях, когда API среда выполнения Windows использует PropertySet в качестве значения, он фактически отображается как IPropertySet в сигнатурах. PropertySet можно считать практической реализацией IPropertySet , готовой для использования в коде приложения. Код JavaScript может обрабатывать любое значение IPropertySet так, как если бы он реализовал прототипы PropertySet.

Списки элементов коллекции

Для JavaScript PropertySet поддерживает использование индекса для доступа к элементам.

Конструкторы

PropertySet()

Создает и инициализирует новый экземпляр набора свойств.

Свойства

Size

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

Методы

Clear()

Удаляет все элементы из набора свойств.

First()

Возвращает итератор для перечисления элементов в наборе свойств.

GetView()

Возвращает неизменяемое представление набора свойств.

HasKey(String)

Указывает, содержит ли набор свойств элемент с указанным ключом.

Insert(String, Object)

Добавляет элемент в набор свойств.

Lookup(String)

Извлекает значение для указанного ключа.

Remove(String)

Удаляет элемент из набора свойств.

События

MapChanged

Происходит при изменении наблюдаемой карты.

Применяется к

См. также раздел