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