WPF - Как объединить DataTrigger и Триггер?

Примерно так должно работать

edit: добавлена ​​обработка ошибок, чтобы убедиться, что события не застряли «выключено»

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim v

    'skip multi-cell updates
    If Target.CountLarge > 1 Then Exit Sub

    With Target
        v = Trim(.Value)
        If Len(v) > 0 And .Column > 2 Then
            If v Like "Z-#*" Then
                On Error Goto haveError
                Application.EnableEvents = False 
                With Me.Cells(.Row + 1, 3)
                    .Value = Right(v, Len(v) - 2)
                    .Offset(0, 1).Select '? select next cell in new row ?
                End With
                .Value = "" 'clear the original "Z" scan?
                Application.EnableEvents = True
            Else
                Me.Cells(.Row, .Column + 1).Select
            End If
        End If
    End With

    Exit sub

haveError:
    Msgbox Err.Description
    Application.EnableEvents = True

End Sub
49
задан Community 23 May 2017 в 02:25
поделиться

1 ответ

Для кого-либо еще, кто противостоит этой проблеме, я нашел решение, которое работает на меня. Конечно, мне все еще интересно видеть другие интересные ответы.

Вот то, что я сделал:

<MultiDataTrigger>
  <MultiDataTrigger.Conditions>
    <Condition Binding="{Binding
      RelativeSource={
        RelativeSource Mode=FindAncestor, AncestorType={x:Type ListBoxItem}},
        Path=IsSelected}" Value="True"/>
    <Condition Binding="{Binding IsAvailable}" Value="False"/>
  </MultiDataTrigger.Conditions>
  <Setter TargetName="Name" Property="Foreground" Value="#F00"/>
</MultiDataTrigger>

нет ничего специального об этом являющемся много триггером все же. Если бы Вы просто хотели разработать выбранный пункт по-другому в Вашем шаблоне данных, то Вы могли бы использовать:

<DataTrigger Binding="{Binding 
  RelativeSource={
    RelativeSource Mode=FindAncestor, AncestorType={x:Type ListBoxItem}},
    Path=IsSelected}" Value="True">
  <Setter TargetName="Name" Property="Foreground" Value="#888"/>
</DataTrigger>
65
ответ дан Drew Noakes 7 November 2019 в 11:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: