WPF ComboBox binding ObservableCollection

Есть WPF проект. В нём имеется ListBox, к нему прибинден ObservableCollection Units, внутри которого по нажатию кнопки создаётся Expander со всякими элементами, а также ComboBox. ComboBox представлен в виде ObservableCollection с именем UnitTypes + со своим типом UnitType. Коллекция заполняется элементами в DataContext. Коллекция и её тип лежат в отдельных классах от MainWindow (UnitTypes лежит в классе Main_prop).

Суть проблемы состоит в том, что не получается нормально прибиндить ComboBox к коллекции UnitTypes. Т.е. добавление элементов в в коллекцию происходит успешно, однако ComboBox остаётся пустым.

Что я делаю не так? Как можно решить данную проблему?

Также хочу отметить что я недавно начал изучать WPF, поэтому могу не знать некоторых вещей.

Xaml

<ListBox x:Name="LBUnits" ItemsSource="{Binding Units}">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <Expander Header="{Binding NameU}" >
                                <StackPanel>
                                    <TextBlock Text="Название"/>
                                    <TextBox Text="{Binding NameU}"/>
                                    <TextBlock Text="Описание"/>
                                    <TextBox Text="{Binding DescU}"/>
                                    <TextBlock Text="Тип"/>
                                    <ComboBox ItemsSource="{Binding UnitTypes}" >
                                        <ComboBox.ItemTemplate>
                                            <DataTemplate>
                                                <TextBlock Text="{Binding UTypeName}"/>
                                            </DataTemplate>
                                        </ComboBox.ItemTemplate>
                                    </ComboBox>
                                </StackPanel>
                            </Expander>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
                <Button Content="Добавить" Click="AddUnit"/>

Коллекция UnitTypes, лежащая в Main_prop.

    public ObservableCollection<UnitType> UnitTypes 
    { 
        get { return _UnitTypes; }
        set { _UnitTypes = value; OnPropertyChanged(); } 
    }

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

UnitType

public class UnitType
{
    public int idUnitType { get; set; }
    public string UTypeName { get; set; }

    public UnitType(int _idUnitType, string _UTypeName)
    {
        this.idUnitType = _idUnitType;
        this.UTypeName = _UTypeName;
    }
}

MainWindow

    private Main_prop mnp;
    public MainWindow()
    { 
        InitializeComponent();
        mnp = new Main_prop();
        DataContext = mnp;

        mnp.UnitTypes = new ObservableCollection<UnitType>();
        mnp.UnitTypes.Add(new UnitType(0, "тест0"));
        mnp.UnitTypes.Add(new UnitType(1, "тест1"));
    }
    Main_prop _MAINpr = new Main_prop(); 

Метод создания новых элементов в ListBox (MainWindow)

    private void AddUnit(object sender, RoutedEventArgs e)
    {
        _MAINpr.Units.Add(new Unit() { NameU = "имя тест", DescU = "описание тест", idUnitType = 0, UnitCost = 0, UnitTotalCost = 0, UnitPrice = 0 });
        LBUnits.ItemsSource = null;
        LBUnits.ItemsSource = _MAINpr.Units;
    }

P.S коллекция Units, которая используется в ListBox.

public ObservableCollection<Unit> Units = new ObservableCollection<Unit>();
public class Unit
{
    public string NameU { get; set; }
    public int idUnitType { get; set; }
    public string DescU { get; set; }
    public int UnitCost { get; set; }
    public int UnitTotalCost { get; set; }
    public int UnitPrice { get; set; }
}

Ответы (0 шт):