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 类型允许各种Windows 运行时 API 返回混合值的集合,这些值仍可使用 PropertySet 的通用集合 API 进行迭代或检查,这些 API 与 IMap<K、V>、IDictionary<TKey、TValue> 或 JavaScript 集合和枚举技术相匹配,具体取决于应用使用的语言。

PropertyValue 是一个类,它支持大量静态 Create* 方法,这些方法从通常为值类型或基元 (布尔值、数字等) 或这些值的数组的输入创建特意非类型化值。 调用其中一个静态 PropertyValue 方法后,其返回值可以被视为 PropertyValue 实例 (但是,如果您查看签名) , Create* 方法在技术上返回 Object

但是,通常不会以要求自己填充集中 的 PropertyValue 值的方式使用 PropertySet。 相反,通常会从Windows 运行时 API 获取一个填充的 PropertySet 作为返回值,该 API 提供一个集合,其中的值类型可能混合在一起,但仍按源或方案相互关联。 例如,检索应用数据时获取的 LocalSettingsRoamingSettings 值的类型为 ApplicationDataContainer,并且每个值都包含一个 PropertySet 作为其 Values 属性值。 与存储设置的应用数据交互时,通常从 ApplicationDataContainer.Values 获取集合。 然后,你可以:

对于使用应用数据等方案,当你具有 PropertySet 时,可以通过引用获取它,因此,如果使用 “添加/”“插入 ”将项添加到 PropertySet,这些项将添加到应用数据中,而删除项会将其从应用数据中删除。 然后,如果对 RoamingSettings 进行过所有此类更改,则通过应用数据机制共享这些更改。

还有其他Windows 运行时 API 使用 PropertySet 值作为直接值,而不是包装在另一个类(如 ApplicationDataContainer)中。 例如, CoreApplication.Properties 返回 PropertySet。

报告媒体和设备中信息的各种属性都使用 PropertySet,例如 PlayToReceiver.Properties。 但是,还有其他媒体/设备属性集不使用 PropertySet,而是使用 MediaPropertySet,因为这些属性的标识符在键化为 GUID 而不是字符串时会更好地表示。

在许多情况下,Windows 运行时 API 使用 PropertySet 作为值,它实际上在签名中显示为 IPropertySet。 可以将 PropertySet 视为可供应用代码使用的 IPropertySet 的实际实现。 JavaScript 代码可以将任何 IPropertySet 值视为实现 PropertySet 原型。

集合成员列表

对于 JavaScript,PropertySet 支持使用索引来访问项。

构造函数

PropertySet()

创建并初始化属性集的新实例。

属性

Size

获取属性集中包含的项数。

方法

Clear()

从属性集中删除所有项。

First()

返回一个迭代器,用于枚举属性集中的项。

GetView()

获取属性集的不可变视图。

HasKey(String)

指示属性集是否具有具有指定键的项。

Insert(String, Object)

将项添加到属性集。

Lookup(String)

检索指定键的值。

Remove(String)

从属性集中删除项。

事件

MapChanged

当可观测映射发生更改时发生。

适用于

另请参阅