2012-06-21 2 views
0

Я использую шаблон MVVM, и у меня есть один DataGrid с столбцом, который показывает некоторое изображение, если для двух значений булина установлено значение true. Одно значение - в DataView (DtView), которое связывается для генерации строк, и нет проблем с привязкой, но другое значение является общедоступным свойством из ViewModel (так же, как и DtView), и здесь проблема. Я не знаю, как это решить.
Вот мой код:WPF - Как связать из двух разных dataviews в один multidatatrigger в datagrid

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

Если кто-то может помочь мне, чем я был бы очень счастлив, потому что это расстраивает, и я не знаю, как исправить этот код.

ответ

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

Спасибо. Ты спасаешь мою жизнь. Работает отлично. :-) – Artholl