Q:

WPF ComboBox itemsSource not working in Prism MVVM

I'm trying to get a list of items from DB and populate it in a ComboBox using
EntityFramework and Prism MVVM,

it is populating the items but the text is not appeared when I open the ComboBox? did I do
  something wrong in the below code.

And

Is this the right way to implement the MVVM Pattern?

please find UPDATE1 below:
CodeBehind:
public MainWindow()
{
    InitializeComponent();
    this.DataContext = new XViewModel();
 }

Model:
public class SpModel
{
    public string SpName { get; set; }
    public string SpID { get; set; }
}

ViewModel:
public class XViewModel : BindableBase
{
    private List<SpModel> _spList;
    public List<SpModel> SpList
    {
        get { return _spList; }
        set { SetProperty(ref (_spList), value); }
    }
}

public XViewModel()
{
    FillDefaultData();
}

private void FillDefaultData()
{
    using (JContext dc = new JContext())
    {
        var query = (from sp in dc.Sps
                     select new SpModel()
                     {
                         SpID = sp.SpID.ToString(),
                         SpName = sp.SpName
                     }).ToList();

        if (query != null && query.Count() > 0)
            SpList = query;
    }
}

XAML:
<ComboBox x:Name="ddlSp" Height="38" Padding="2"
          ItemsSource="{Binding SpList}"                                                     
          SelectedValuePath="SpID"          
          DisplayMemberPath="SpName" />

UPDATE1
STYLE:
<Style x:Key="{x:Type ComboBoxItem}" TargetType="{x:Type ComboBoxItem}">
    <Setter Property="SnapsToDevicePixels" Value="true"/>
    <Setter Property="OverridesDefaultStyle" Value="true"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ComboBoxItem}">
                <Border Name="Border"
                        SnapsToDevicePixels="true">
                    <ContentPresenter 
                                      TextBlock.FontSize="14"
                                      TextBlock.Foreground="Black"
                                      TextBlock.FontWeight="Bold">
                        <ContentPresenter.Content>
                            <Grid>

Problem in this line:
<TextBlock Text="{Binding Content}" />

..
                            </Grid>
                        </ContentPresenter.Content>
                    </ContentPresenter>
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsHighlighted" Value="true">
                        <Setter TargetName="Border" Property="Background" Value="#B1B1B1"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

A:

You shouldn't set the Content property of the ContentPresenter in the ControlTemplate:
<Style x:Key="{x:Type ComboBoxItem}" TargetType="{x:Type ComboBoxItem}">
    <Setter Property="SnapsToDevicePixels" Value="true"/>
    <Setter Property="OverridesDefaultStyle" Value="true"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ComboBoxItem}">
                <Border Name="Border" SnapsToDevicePixels="true">
                    <ContentPresenter 
                                      TextBlock.FontSize="14"
                                      TextBlock.Foreground="Black"
                                      TextBlock.FontWeight="Bold" />
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsHighlighted" Value="true">
                        <Setter TargetName="Border" Property="Background" Value="#B1B1B1"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

