0

我正在使用 MVVM 模式,如果两个布尔值设置为 true,我有一个带有一列的 DataGrid,该列显示一些图片。一个值在绑定以生成行的 DataView (DtView) 中,绑定没有问题,但另一个值是 ViewModel 的公共属性(与 DtView 相同),这是问题所在。我不知道如何解决这个问题。
这是我的代码:

<DataGrid ItemsSource="{Binding Path=DtView}">
  <DataGrid.Columns>
    <DataGridTemplateColumn Header="Status">
      <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
          <StackPanel Orientation="Horizontal">
            <Image Source="../Images/a.png" Width="18" Height="18">
              <Image.Style>
                <Style TargetType="Image">
                  <Setter Property="Visibility" Value="Collapsed" />
                  <Style.Triggers>
                    <MultiDataTrigger>
                      <MultiDataTrigger.Conditions>
                        <Condition Binding="{Binding 'column from DtView'}" Value="True" />
                        <Condition Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=Column from other DataView}" Value="True" />
                      </MultiDataTrigger.Conditions>
                      <Setter Property="Visibility" Value="Visible" />
                    </MultiDataTrigger>
                  </Style.Triggers>
                </Style>
              </Image.Style>
            </Image>
          </StackPanel>
        </DataTemplate>
      </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
  </DataGrid.Columns>
</DataGrid>

如果有人可以帮助我,我会非常高兴,因为这很令人沮丧,而且我不知道如何修复此代码。

4

1 回答 1

1

尝试

<MultiDataTrigger.Conditions>
    <Condition Binding="{Binding 'column from DtView'}" Value="True" />
    <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}},
                                 Path=DataContext.OtherDtView.Column from other DataView}" Value="True" />
</MultiDataTrigger.Conditions>
于 2012-06-21T22:51:34.213 回答