Witam, struktura mojego programu wygląda na tą chwilę następująco:
MainView Window
HomePageView UserControl
UserPreferencesView UserControl
MainViewModel
W głównym widoku, w oknie mam trzy razy ComboBox, z których użytkownik będzie wybierał zawartość ContentControl, czyli na początek UserPreferencesView, gdzie będą jakieś opcje ustawień użytkownika, zmiana hasła itd. Poniżej w skrócie kod XAML
<Window ...
<Window.DataContext>
<viewmodel:MainViewModel />
</Window.DataContext>
<Grid>
...
<ComboBox Grid.Column="0" Margin="10" VerticalContentAlignment="Center"
HorizontalContentAlignment="Center"
IsEditable="True"
IsReadOnly="True"
Text="Konto"
ItemsSource="{Binding Path=AccountActions}"
SelectedItem="{Binding SelectedAccountAction}">
</ComboBox>
</Grid>
<ContentControl Grid.Row="1" Content="{Binding Content}"/>
</Grid>
</Window>
Oraz MainViewModel
namespace Program.Viewmodels
{
public class MainViewModel:INotifyPropertyChanged
{
public MainViewModel()
{
AccountActions = new ObservableCollection<string>
{
"Ustawienia",
};
content = new HomePageView();
}
//Menu Konto
#region
public ObservableCollection<string> AccountActions { get; private set; }
private string vm_SelectedAccountAction;
public event PropertyChangedEventHandler PropertyChanged;
public string SelectedAccountAction
{
get
{
return vm_SelectedAccountAction;
}
set
{
if (vm_SelectedAccountAction == value)
return;
vm_SelectedAccountAction = value;
MakeAction(vm_SelectedAccountAction);
}
}
public void MakeAction(string SelectedAction)
{
switch (SelectedAction)
{
case "Ustawienia":
content = new UserPreferencesView();
break;
}
}
#endregion
private object content { get; set; }
public object Content
{
get { return content; }
set { content = value;
NotifyPropertyChanged(Content);
}
}
private void NotifyPropertyChanged(object content)
{
throw new NotImplementedException();
}
}
}
Moim celem jest aby po wybraniu opcji "Ustawienia" w ComboBox, pojawiał się widok UserPreferencesView. Niestety tak się nie dzieje, mogę zmieniać ContentControl tylko poprzez konstruktor, czyli HomePageView się ładuje. Co powinienem zmienić w kodzie?