Определение DataTrigger для StackPanel

Как я определяю a DataTrigger для a StackPanel? Это действительно имеет a Trigger свойство, но определение триггера здесь дает следующую ошибку на, Инициализируют при запущении приложения:

Неудавшаяся объектная инициализация (ISupportInitialize. EndInit). Триггерные участники набора должны иметь тип EventTrigger....

Это дано от следующего простого DataTrigger:

<StackPanel x:Name="PersonPanel" DataContext="{Binding CurrentPerson}">
    <TextBlock Text="{Binding Id}" />
    <TextBlock Text="{Binding Name}" />
    <StackPanel.Triggers>
        <DataTrigger Binding="{Binding Id}" Value="1">
            <Setter TargetName="PersonPanel" Property="StackPanel.Background" Value="Green" />
        </DataTrigger>                
    </StackPanel.Triggers>
</StackPanel>

Это - мое первое Trigger когда-нибудь, поэтому что я делаю неправильно? Если я определяю Trigger в другом месте?

12
задан Dave Clemmer 21 September 2011 в 01:25
поделиться

2 ответа

Попробуйте что-нибудь вроде этого

   <Window.Resources>
        <Style x:Key="spStyle" TargetType="StackPanel">
            <Setter Property="StackPanel.Background" Value="Red" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding Id}" Value="1">
                    <Setter Property="StackPanel.Background" Value="Green" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>
    <StackPanel x:Name="PersonPanel" Style="{StaticResource spStyle}" DataContext="{Binding CurrentPerson}">
        <TextBlock Text="{Binding Id}" />
        <TextBlock Text="{Binding Name}" />
    </StackPanel>
13
ответ дан 2 December 2019 в 18:18
поделиться

попробуйте это:

<TextBlock Text="{Binding Id}">
    <TextBlock.Style>
        <Style>
            <Style.Triggers>
                <Trigger Property="TextBlock.Text" Value="1">
                    <Setter TargetName="PersonPanel" Property="StackPanel.Background" Value="Green" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>
7
ответ дан 2 December 2019 в 18:18
поделиться
Другие вопросы по тегам:

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