DataTemplateSelector error: Cannot change access modifiers

DataTemplateSelector error: Cannot change access modifiers

我正在尝试自定义 DataTemplateSelector 但它抛出以下错误:覆盖 'public' 继承成员时无法更改访问修饰符

public class NotesTemplateSelector : DataTemplateSelector
{
    public DataTemplate GripElectricTemplate { get; set; }
    public DataTemplate CameraTemplate { get; set; }

    protected override DataTemplate SelectTemplate(object item, DependencyObject container)
    {
        var ListItem = item as NoteHeaders;
        if (ListItem.NoteHeader == "Grip and Electric")
        {
            return GripElectricTemplate;
        }
        else if (ListItem.NoteHeader == "Camera")
        {
            return CameraTemplate;
        }
        return null;
    }
}

xaml 在我看来

<Grid.Resources>
     <local:NotesTemplateSelector x:Key="NotesTemplateSelector"/>

     <DataTemplate x:Key="GripElectricTemplate">
           <StackPanel>
               <Expander Header="Grip and Electric">
                     <TextBox AcceptsReturn="True" HorizontalAlignment="Left" Height="85" Margin="10,5,0,0" TextWrapping="Wrap" Text="{Binding SceneCollectionView/GripElectric, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Top" Width="278"/>
                </Expander>
             </StackPanel>
            </DataTemplate>

        <DataTemplate x:Key="CameraTemplate">
           <StackPanel>
                 <Expander Header="Grip and Electric">
                            <TextBox AcceptsReturn="True" HorizontalAlignment="Left" Height="85" Margin="10,5,0,0" TextWrapping="Wrap" Text="{Binding SceneCollectionView/Camera, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Top" Width="278"/>
                 </Expander>
            </StackPanel>
       </DataTemplate>
</Grid.Resources>
<ListBox  Background="#FF646464" ItemsSource="{Binding ElementName=This}" ItemTemplateSelector="{StaticResource ResourceKey=NotesTemplateSelector}" dd:DragDrop.IsDragSource="True" dd:DragDrop.IsDropTarget="True">                                                   
</ListBox>

SelectTemplate 似乎有问题,它似乎禁用了我在 mvvm light 中使用的 ViewModelLocator。我该如何解决这个问题?

signature of SelectTemplate

public virtual DataTemplate SelectTemplate(Object item, DependencyObject container)

将 protected 更改为 public,你应该没问题。