CheckBoxのON,OFFでTextBoxのIsReadOnlyプロパティを切り替えたいと考えています。
以下のソースではGrid直下のTextBoxではTriggerが動き、CheckBoxと連動してIsReadOnlyが変動します。
しかし、ListBox内のTextBoxではCheckBoxの値に関係なく、常にReadOnlyとなってしまいます。
Template内のコレクションにもStyle Triggerを適用させる方法を教えて下さい。


class TextBoxModel
{
    public string text { get; set; }
    public int count { get; set; }

    public TextBoxModel(string text, int count)
    {
        this.text = text;
        this.count = count;
    }
}

class MainWindowViewModel : INotifyPropertyChanged
{
    public List<TextBoxModel> tbm { get; set; }

    private bool _isReadOnly;
    public bool IsReadOnly
    {
        get { return _isReadOnly; }
        set
        {
            _isReadOnly = value; 
            OnPropertyChanged(nameof(IsReadOnly));
        }
    }

    public MainWindowViewModel()
    {
        tbm = new List<TextBoxModel>()
        {
            new TextBoxModel("aaa", 10),
            new TextBoxModel("fff", 10)
        };
    }

    public event PropertyChangedEventHandler PropertyChanged;
    [NotifyPropertyChangedInvocator]
    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

<Window.DataContext>
    <local:MainWindowViewModel />
</Window.DataContext>

<Window.Resources>
    <Style x:Key="ReadOnlyTextBox" TargetType="TextBox">
        <Setter Property="IsReadOnly" Value="True" />
        <Setter Property="HorizontalAlignment" Value="Left"></Setter>
        <Setter Property="TextWrapping" Value="Wrap"></Setter>
        <Setter Property="VerticalAlignment" Value="Top"></Setter>
        <Setter Property="Width" Value="100"></Setter>

        <!--ここがtemplate内のTextBoxに適用されない-->
        <Style.Triggers>
            <DataTrigger Binding="{Binding IsReadOnly}" Value="False">
                <Setter Property="IsReadOnly" Value="False"></Setter>
            </DataTrigger>
        </Style.Triggers>

    </Style>
</Window.Resources>

<Grid>
    <TextBox x:Name="textBox" Style="{StaticResource ReadOnlyTextBox}" Height="23" Margin="10,10,0,0" Text="TextBox"/>
    <ListBox x:Name="listBox" HorizontalAlignment="Left" Height="120" Margin="162,10,0,0" VerticalAlignment="Top" Width="108" ItemsSource="{Binding tbm}">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <TextBox Style="{StaticResource ReadOnlyTextBox}" Text="{Binding text}"/>
                </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
    <CheckBox x:Name="checkBox" Content="ReadOnly" HorizontalAlignment="Left" Margin="324,20,0,0" VerticalAlignment="Top" IsChecked="{Binding IsReadOnly}"/>
</Grid>