博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows store app Settings 的 应用 ( viewmodel + windows.storage)
阅读量:4911 次
发布时间:2019-06-11

本文共 2810 字,大约阅读时间需要 9 分钟。

 

1.在首页 加入 一个元素(加下滑线的)。此元素绑定了两个属性

    
App1

 

2.定义viewmodel, 并监听 viewmodel的属性变化。这样就可以在属性变化的时候,在更新UI的同时,去做想做的事。比如:更改本地存储。首页js 如下:

(function () {    "use strict";    WinJS.Binding.optimizeBindingReferences = true;    var app = WinJS.Application;    var activation = Windows.ApplicationModel.Activation;   WinJS.Application.onsettings = function (e) {        //添加设置的选项        e.detail.applicationcommands = {
// href: 是设置相关信息使用的页面 | title: 就是 设置显示的文字 | color : 对应 settings.html 内 拥有 data-win-control="WinJS.UI.SettingsFlyout" 属性的元素的id "color": { href: "pages/settings.html", title: "更改字体颜色&内容" } }; //把 自定义的设置选项 添加到 设置窗口 WinJS.UI.SettingsFlyout.populateSettings(e); }; app.onactivated = function (args) { if (args.detail.kind == activation.ActivationKind.launch) { //定义一个 ViewModel WinJS.Namespace.define("ViewModel", { Settings: WinJS.Binding.as({ color: "red", text: 'aaaasdasdasdsa' }) }); //需要观察的属性 var settings = ['color', 'text']; //给 viewmodel 绑定 属性改变事件 AddisonUitl.BindViewModelEvent(ViewModel.Settings, settings); WinJS.UI.processAll().then(function () { //绑定数据 WinJS.Binding.processAll(document.getElementById('aa'), ViewModel.Settings); }) } } app.start();})();

3.因为在 添加自定义设置 选项的时候,需要一个设置页面,下面是 settings.html

                
Colors

背景颜色

更改内容

4.下面是 util.js 的代码:

WinJS.Namespace.define('AddisonUitl', {    ///      ///  property of ViewModel     ///   the key in  param name     BindViewModelEvent: function (name, eventType) {        var that = this;        eventType.forEach(function (item, index) {            //载入 用户设置 信息            var valArray = Windows.Storage.ApplicationData.current.localSettings.values;            if (valArray[item] != undefined) {                name[item] = valArray[item];            }            //绑定属性改变事件            name.bind(item, function (newVal, oldVal) {                if (oldVal != null) {                    that.storeSetting(item, newVal);                    // that.updateViewModel(name, item, newVal);                }            })        })    },    storeSetting: function (key, value) {        var store = Windows.Storage;        store.ApplicationData.current.localSettings.values[key] = value;    },    updateViewModel: function (name, key, value) {        name[key] = value;    }})

 

 

 

 

转载于:https://www.cnblogs.com/Mr-Joe/p/3195939.html

你可能感兴趣的文章
Android设计模式实战---责任链模式
查看>>
剑指Offer_31_整数中1出现的次数(从1到n整数中1出现的次数)
查看>>
10月29日 迅雷会员vip账号分享 91freevip 晚间21:00更新
查看>>
【一题多解】Python 字符串逆序
查看>>
open ball、closed ball 与 open set、closed set(interior point,limit point)、dense set
查看>>
字典(dictionary)与映射(map)
查看>>
Python 编程规范 —— TODO 注释(结合 PyCharm)
查看>>
十万个为什么 —— 名词解释(体育)
查看>>
table的设置(w3c)
查看>>
冲刺一
查看>>
【练习】在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b...
查看>>
python解决上楼梯问题
查看>>
变参宏 __VA_ARGS__
查看>>
sql 语句
查看>>
VUE一 基础语法
查看>>
[MySQl]MySQL忘记密码
查看>>
Android的minSdkVersion,targetSdkVersion,maxSdkVersion
查看>>
Xceed WinForm数据表格控件Xceed Grid For .NET控件详细介绍及下载地址
查看>>
ecos启动流程分析
查看>>
Oracle CASE WHEN 用法介绍
查看>>