两种视图模型,一种视图,仅一种绑定更新

时间:2019-06-26 10:36:41

标签: c# wpf xaml data-binding

我有一个视图模型,其中有两个视图可供用户在基本视图和高级视图之间切换。

我在两个视图中都有一个控件,该控件都有一个数据触发器,可以在满足一组条件时隐藏该控件。

我的问题是,条件绑定到数据触发器内的多重绑定中的多个属性,并且当更新公共视图模型中的这些属性时,它将更新一个视图上的绑定,而不更新另一个视图上的绑定。

我这样声明控件:

  <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>

如果我在基本控件之前声明了高级控件(如上所示),则可以在高级控件中触发属性,而不能在基本控件中触发,如果在它们周围交换它们,则可以在基本控件中触发属性,而不是高级控件。

当两个视图使用相同的视图模型时,属性更改的通知由第一个声明的控件使用,然后不到达第二个声明的控件。

我的问题是:

如何触发属性更改通知,以更新与该视图模型关联的所有视图上的绑定?

0 个答案:

没有答案