Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#/WinRT中的全局状态对象_C#_Wpf_Xaml_Windows Runtime_Reactive Programming - Fatal编程技术网

C#/WinRT中的全局状态对象

C#/WinRT中的全局状态对象,c#,wpf,xaml,windows-runtime,reactive-programming,C#,Wpf,Xaml,Windows Runtime,Reactive Programming,为了简单起见,我尝试在C#/XAML/WinRT中实现以下体系结构: Global App State -> Bindings -> Pages / User Controls etc -| ^ | |------------- update -----------------------------| 因此,基本上,FP/reactive是时尚的。页面

为了简单起见,我尝试在C#/XAML/WinRT中实现以下体系结构:

Global App State -> Bindings -> Pages / User Controls etc -|
        ^                                                  |
        |------------- update -----------------------------|
因此,基本上,FP/reactive是时尚的。页面和UI绑定到全局状态对象的属性,每当视图想要更新某些内容时,它都会直接(或通过视图模型类,无论什么)更改全局应用程序状态,并立即(通过绑定)更新应用程序的所有其他从属部分

我知道
dependencProperties
INotifyPropertyChanged
,因此绑定到属性应该不是问题

然而,在理想情况下,即使我完全替换全局状态对象,我也希望这种情况发生。比方说,这是一个多用户应用程序,那么我想像这样切换用户:

App.State = LoadStateForUser(...);
以及绑定到全局状态更新的UI的所有部分。现在我必须自己设置每个不同的属性。这有可能吗


请注意,我不是在征求关于MVC或MVVM或其他任何设计模式的建议。

您可以这样做,但它肯定不会自动进行

我会在
App
(或
gloabstateservice
,或其他任何东西)上发生一个事件,表明全局状态已更改(
globalstateschanged
似乎合理)

然后,视图模型将订阅此事件,当您上面显示的setter引发此事件时,引发正确的
PropertyChanged
事件,以便UI更新。如果viewmodel的主绑定属性是对全局状态对象的简单引用,则这应该只是一个事件