Hi
1. Your Us_State class is fine. Found No issue. Why you created AllUSStates public property in Us_State class. its not required.
2. Your static class StatesArray is Fine, but AllFiftyStates method is not required, You can declare states as public property, with public getter and private setter. So on constructor just fill states property, while publicly you can access it. Also you are adding additional cost by converting List<us_states> to array of us_states.
Note: this is suggestion.
3. Now finally once you have done, create public property in your mainWindow.xaml.cs. and implement INoityPropertyChanged.
private List<US_State> get_States;
public List<US_States> Get_States{
get=>get_States;
set{
get_States = value;
RaisePropertyChange();
}
}
4. Now On window load event fill Get_States from source like Get_States= StatesArray.states;
5. Finally Find Get_States to Combobox. but remember, Combobox will look for datacontext of itesself, and then search throgh to its ancestor. But here as Your Get_States are availble in Windows.xaml.cs so you will use relative source like
<ComboBox x:Name="ComboboxState" Grid.Column="1" Grid.Row="2" VerticalAlignment="Center" Width="120" HorizontalAlignment="Left" ToolTip="Enter your state."
ItemsSource="{Binding Get_States, RelativeSource={RelativeSource AncestorType=Window, Mode=FindAncestor}, UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="Name" SelectedValuePath="Abbreviation"/>