【问题标题】:DataTemplateSelector error: Cannot change access modifiersDataTemplateSelector 错误:无法更改访问修饰符
【发布时间】:2015-09-16 14:40:08
【问题描述】:

我正在尝试自定义 DataTemplateSelector,但它引发了以下错误:无法更改访问修饰符时覆盖“公共”继承成员

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。我该如何解决这个问题?

【问题讨论】:

    标签: c# wpf oop inheritance datatemplate


    【解决方案1】:

    signature of SelectTemplate

    public virtual DataTemplate SelectTemplate(Object item, DependencyObject container)
    

    将更改保护为公开,您应该很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-22
      • 2015-10-14
      • 1970-01-01
      • 2010-11-13
      • 2013-10-19
      • 2017-02-19
      • 2012-03-08
      • 1970-01-01
      相关资源
      最近更新 更多