3

コレクションを次のウィンドウとユーザー コントロールにバインドすると、スタイルが機能しません。

ウィンドウのボタンを押すと、スタイルが開始されます。

私のスタイルが最初のバインドで起動するのを妨げているのは何ですか?

<Grid>
    <ItemsControl Name="LbItems" ItemsSource="{Binding MyData}">
        <ItemsControl.Resources>
            <DataTemplate DataType="{x:Type viewModel:SomeViewModel}">
                <control:SomeView Margin="5" />
            </DataTemplate>
            <DataTemplate DataType="{x:Type viewModel:AnotherViewModel}">
                <control:AnotherView Margin="5" />
            </DataTemplate>
        </ItemsControl.Resources>
    </ItemsControl>
</Grid>

そして、私は次のようなユーザーコントロールを持っています:

<UserControl.Resources>
    <Style TargetType="{x:Type TextBlock}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding RelativeSource={x:Static 
                RelativeSource.Self}, Path=DataContext.Selected}" Value="False">
                <Setter Property="Foreground">
                    <Setter.Value>
                        Red
                    </Setter.Value>
                </Setter>
            </DataTrigger>
            <DataTrigger Binding="{Binding RelativeSource={x:Static 
                RelativeSource.Self}, Path=DataContext.Selected}" Value="True">
                <Setter Property="Foreground">
                    <Setter.Value>
                        DarkSeaGreen
                    </Setter.Value>
                </Setter>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</UserControl.Resources>

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <Button Command="{Binding SelectCommand}"  Content="+" HorizontalAlignment=
        "Left" VerticalAlignment="Top" Width="25" Grid.Column="0"/>
    <TextBlock HorizontalAlignment="Left" Margin="5" TextWrapping="Wrap" Text=
        "{Binding Endorsement.Name}" VerticalAlignment="Top" Grid.Column="1" />
    <Button Command="{Binding DeselectCommand}" Content="-" HorizontalAlignment=
        "Right" VerticalAlignment="Top" Width="25" Grid.Column="2"/>
</Grid>
4

2 に答える 2