Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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# 当其他绑定更改时重新查询其他绑定_C#_Wpf_Mvvm_Mvvm Light - Fatal编程技术网

C# 当其他绑定更改时重新查询其他绑定

C# 当其他绑定更改时重新查询其他绑定,c#,wpf,mvvm,mvvm-light,C#,Wpf,Mvvm,Mvvm Light,tl;博士: 当另一个绑定发生更改时,重新查询绑定的“正确”方法是什么 上下文: 我正在开发一个MVVM应用程序,其外观和行为类似于MS Access。(功能区+选项卡式界面) 基本上,当选择某个选项卡(viewmodel)时,我需要显示某些上下文选项卡。我的视图模型中有许多属性,它们决定一组上下文选项卡是否可见。举个例子。当ViewModel1是“选定”的viewmodel时,我希望显示ViewModel1的上下文选项卡,因此我的视图模型中有此属性 public bool ViewModel1

tl;博士:
当另一个绑定发生更改时,重新查询绑定的“正确”方法是什么

上下文:
我正在开发一个MVVM应用程序,其外观和行为类似于MS Access。(功能区+选项卡式界面)

基本上,当选择某个选项卡(viewmodel)时,我需要显示某些上下文选项卡。我的视图模型中有许多属性,它们决定一组上下文选项卡是否可见。举个例子。当ViewModel1是“选定”的viewmodel时,我希望显示ViewModel1的上下文选项卡,因此我的视图模型中有此属性

public bool ViewModel1Active
{
    get { return (selectedWorkspace is ViewModel1); }
    set { Set(ref viewModel1Active, value); }
}
我还有一个绑定到选定视图模型的单独属性:

public WorkspaceViewModel SelectedWorkspace
{
    get { return selectedWorkspace; }
    set { Set(ref selectedWorkspace, value); }
}
我的理论是,当在
SelectedWorkspace
上调用set访问器时,我会重新查询上下文选项卡的所有绑定:

public WorkspaceViewModel SelectedWorkspace
{
    get { return selectedWorkspace; }
    set { Set(ref selectedWorkspace, value); RefreshContextualTabs(); }
}

void RefreshContextualTabs()
{
    RaisePropertyChanged("ViewModel1IsActive");
    RaisePropertyChanged("ViewModel2IsActive");
   // etc.
}
当选择viewmodel时,应显示正确的选项卡集

有没有更好的办法


正在使用的库:MVVMLight和FluentRibbon

作为旁注,如果我没记错的话:PropertyChanged.Fody检测到这些依赖项并添加所有连接属性的自动触发。。。不管怎样,我更喜欢编织而不是手工编码…@Andreasniedermir,这就是你所说的??我想是少了点什么。无论如何,您可以在