我有一个视图模型,其中有两个视图可供用户在基本视图和高级视图之间切换。
我在两个视图中都有一个控件,该控件都有一个数据触发器,可以在满足一组条件时隐藏该控件。
我的问题是,条件绑定到数据触发器内的多重绑定中的多个属性,并且当更新公共视图模型中的这些属性时,它将更新一个视图上的绑定,而不更新另一个视图上的绑定。
我这样声明控件:
<controls:AdvancedLightManager
Grid.Row="0"
Grid.RowSpan="3"
Grid.Column="3"
Visibility="Collapsed" />
<controls:BasicLightManager
Grid.Row="0"
Grid.RowSpan="3"
Grid.Column="2" />
当用户单击设置中的按钮时,可见性交换,因此高级用户忙而不是基本用户。
两个视图共有的数据触发器是这个...
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource FModeFilterConverter}">
<Binding ElementName="ViewModel" Path="IsInFMode" />
<Binding Path="" />
<Binding ElementName="ViewModel" Path="SelectedLight" />
<Binding ElementName="ViewModel" Path="SelectedCategory" />
</MultiBinding>
</DataTrigger.Binding>
如果我在基本控件之前声明了高级控件(如上所示),则可以在高级控件中触发属性,而不能在基本控件中触发,如果在它们周围交换它们,则可以在基本控件中触发属性,而不是高级控件。
当两个视图使用相同的视图模型时,属性更改的通知由第一个声明的控件使用,然后不到达第二个声明的控件。
我的问题是:
如何触发属性更改通知,以更新与该视图模型关联的所有视图上的绑定?