我的Visual Studio项目中有3个xaml页面,一个MainPage.xaml页面,一个Homepage.xaml页面和一个Settings.xaml页面,在我的设置页面上,我有一个用于控制字体大小的滑块,我可以将其绑定到TextBlocks上设置页面并更改其字体大小但如何将其绑定到我的Homepage.xaml上的TextBlocks?
答案 0 :(得分:0)
您应该有一个共享对象,该对象将被引用到每个视图以用作数据源。创建视图时,您可以通过dependency injection将此对象传递给视图。您的类应该实现INotifyPropertyChanged
接口,以便能够通知客户端属性值已更改。
您可以使用EventAggregator或其他event-based patterns更多的复杂和通用解决方案。事件聚合器有助于在低耦合应用程序中实现订阅者/发布者模式。
首先使用要在组件之间发送的属性创建新事件(如果此事件中没有数据,则不带任何属性)。在您的情况下,这类似于OnApplicationFontChangedEvent
。
接下来订阅事件的所有窗口,并使用从handler参数接收的参数在事件处理程序中更改数据(Font
绑定到Label
或其他模型属性)。
最后从按钮单击事件处理程序的“设置”视图中提升(或以其他方式发布)您的事件。
正如您所看到的,两个实现都是MVVM库的一部分,this pattern对您的应用程序非常有用。