加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

更新Windows 8 C#Metro App的GUI

发布时间:2020-12-14 01:59:15 所属栏目:Windows 来源:网络整理
导读:我使用C#中的Visual Studio 11 Ultimate为Win 8创建了一个基本的Metro App. 这里的问题是我想显示随某些事件动态变化的文本. 一个例子是一个应用程序,其中一个数字显示在屏幕上,并且只要点击鼠标就增加1. 我已经使用XAML绑定到我创建的数据结构,它确实获得了
我使用C#中的Visual Studio 11 Ultimate为Win 8创建了一个基本的Metro App.

这里的问题是我想显示随某些事件动态变化的文本.
一个例子是一个应用程序,其中一个数字显示在屏幕上,并且只要点击鼠标就增加1.

我已经使用XAML绑定到我创建的数据结构,它确实获得了我需要显示的值,但问题是当这些值发生变化时,GUI上显示的数字不会改变.

如何将我的XAML绑定到动态更改的数据,以便GUI上的XAML显示也发生变化?

谢谢您的帮助!

– 编辑 –

我已经实现了INotifyPropertyChanged接口,但现在我从这行代码中收到一个异常:

PropertyChanged(this,new PropertyChangedEventArgs(propertyName));

这是异常信息:

该应用程序调用了一个为不同线程编组的接口. (来自HRESULT的异常:0x8001010E(RPC_E_WRONG_THREAD))

解决方法

确保您绑定到(正确)的“数据结构”实现 INotifyPropertyChanged并在您想要通知UI更改时调用PropertyChanged事件.

这是允许xaml层知道绑定数据中值何时发生变化的接口,并相应地进行更新.

编辑以响应新信息:

The application called an interface that was marshalled for a different thread. (Exception from HRESULT: 0x8001010E (RPC_E_WRONG_THREAD))

这表明您正在从单独的线程中提升属性,这可能会导致问题.您可能需要使用CoreDispatcher.RunAsync将其编组回主线程.有关详细信息,请参阅this thread.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读